【发布时间】:2012-08-26 01:06:12
【问题描述】:
有什么方法可以从 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。有什么办法吗?
【问题讨论】:
-
这可能是不可能的,因为同一个偏移量可能对应多个时区名称。例如,
COT(哥伦比亚时间)和EST(美国东部标准时间)都是 GMT-5。 -
正如汤米所说,你无法得到不存在的东西。 NSDate 中没有时区数据。
-
(当然,您可以从要解析的日期字符串中单独提取时区。)
标签: iphone objective-c ios