5

有什么方法可以从 NSDate 获取时区缩写(例如 UTC、EET)?我从字符串中获取 NSDate,例如 2012-08-26 02:54:50 +0200 并且需要显示该日期的时区。

目前正在这样做:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat: @"yyyy-MM-dd HH:mm:ssZZZ"];
NSDate *isoDate = [formatter dateFromString: isoTime.value];
NSInteger offset = [[NSTimeZone defaultTimeZone] secondsFromGMTForDate: isoDate];
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT: offset];

但我得到的是 GMT+03:00 时区缩写,但它应该是 EET。有什么办法得到吗?

4

1 回答 1

7

AnNSDate与时区无关;它本身没有时区。因此,您无法从中获取时区。

secondsFromGMTForDate:从指定日期的 GMT 返回该时区的偏移量(在您的情况下为默认时区)。它返回的信息NSTimeZone可能取决于日期(例如,如果您的时区支持夏令时),而不是日期。

于 2012-08-26T01:30:41.100 回答