NSTimeZone值和区域设置

时间:2013-09-09 11:41:25

标签: ios objective-c nstimezone

我在OS X中有时区:中欧夏令时(自动根据位置)。在模拟器上运行我的代码时,我得到了这些结果:

NSTimeZone *tz = [NSTimeZone localTimeZone]; // Gives me Local Time Zone (Europe/Warsaw (CEST) offset 7200 (Daylight))

NSString *tzString = [tz localizedName:NSTimeZoneNameStyleShortStandard
                                locale:[NSLocale currentLocale]]; // Gives me CET

与EDT / EST相同 - 当我在系统中将当前时间设置为EDT时 - >首选项然后适当的方法返回EST ..

我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

Standard中的NSTimeZoneNameStyleShortStandard具体表示时区的非DST名称。

如果您想要使用DST名称,具体取决于某个日期的DST状态,您可能必须使用-isDaylightSavingTimeForDate:来决定NSTimeZoneNameStyleShortStandardNSTimeZoneNameStyleShortDaylightSaving。< / p>

答案 1 :(得分:0)

Apple警告使用时区缩写。更好地使用已知的偏移来计算 +timeZoneForSecondsFromGMT:

使用属性-daylightSavingTime检查日间保存状态。