2

我有时区: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 相同 - 当我在 System -> Preferences 中将当前时间设置为 EDT 时,适当的方法会返回 EST ..

我错过了什么吗?

4

2 回答 2

4

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

如果您想根据某个日期的 DST 状态使用或不使用 DST 名称,您可能不得不使用-isDaylightSavingTimeForDate:来决定NSTimeZoneNameStyleShortStandardNSTimeZoneNameStyleShortDaylightSaving.

于 2013-09-09T21:10:57.053 回答
0

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

使用该属性-daylightSavingTime检查夏令时状态。

于 2015-02-23T12:35:54.480 回答