创建NSCalendar以使其时区为PST的方法是什么?
如果iPhone在洛杉矶(PST)或纽约(EST),情况仍然如此?代码是否会根据设备的位置/时区进行调整?
答案 0 :(得分:0)
首先,如果您使用currentCalendar
获取日历,那么它将用于用户的当前时区,因此如果您明确指定日历的时区,那么它将具有该时区,因此,例如:
NSCalendar *cal = [NSCalendar currentCalendar];
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"US/Pacific"];
[cal setTimeZone:zone];
如果您想要一个包含用户当前时区的日历,则省略时区设置。
如果您想要一个响应用户设置更改的日历,那么您将获得autoUpdatingCurrentCalendar
:
NSCalendar *cal = [NSCalendar autoUpdatingCurrentCalendar];
我不确定你的意思是'如果iphone处于不同的时区'。您询问了如何在特定时区获取日历;一旦设置了时区,它就会保留在该日历实例中。如果您希望日历报告用户的时区,请使用currentCalendar
或autoUpdatingCurrentCalendar
并且不指定时区。