2014-09-24 95 views
0

创建NSCalendar以使其时区为PST的方式是什么?将NSCalendar创建为PST时区

嗯,这仍然是这种情况如果iPhone在LA(PST)或纽约(EST)?代码是否会根据设备的位置/时区进行调整?

回答

0

首先,如果你使用currentCalendar日历,那么这将是对用户的当前时区,所以如果你明确指定的日历时区那么它将有一个时区,所以,例如:

NSCalendar *cal = [NSCalendar currentCalendar]; 
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"US/Pacific"]; 
[cal setTimeZone:zone]; 

如果你想与用户的当前时区日历,那么你忽略了时区的设置。

如果你想响应该用户的设置中更改日历,然后你就会得到一个autoUpdatingCurrentCalendar

NSCalendar *cal = [NSCalendar autoUpdatingCurrentCalendar]; 

我不知道你是什么意思“如果iPhone在不同的时区” 。你问了如何在特定时区获得日历;一旦你设置了它与该日历实例保持一致的时区。如果要让日历报告用户的时区,请使用currentCalendarautoUpdatingCurrentCalendar,并且不指定时区。

+0

所以,如果一个人在洛杉矶下午2:05,另一个在纽约,在下午5:05,我设置日历是PST,然后当我写我的服务器两次都将是下午2:05正确的吗? – cdub 2014-09-24 23:00:30

+0

问题是*你在写什么*给服务器。一个时间点(一个'NSDate')是相同的时间点,不管你最终决定用什么时区表示它。如果你把它变成一个*字符串*(例如使用一个'NSDateFormatter',那么在那一点上时区即将生效)。 – Petesh 2014-09-25 07:22:13

+0

我把它变成一个字符串(代码)以4小时为增量跟踪事物组 – cdub 2014-09-26 00:35:48