【发布时间】:2014-05-27 01:17:08
【问题描述】:
假设 iOS 7 中的 NSTimeZone timeZoneWithName: 接受具有非特殊区域(如 America/New_York)和 special area(如 Etc/UTC)的时区 ID 是否正确,但 NSTimeZone name永远不会返回特殊区域(但会返回例如Europe/London)?
谁能证实这一点?
【问题讨论】:
标签: ios timezone nstimezone
假设 iOS 7 中的 NSTimeZone timeZoneWithName: 接受具有非特殊区域(如 America/New_York)和 special area(如 Etc/UTC)的时区 ID 是否正确,但 NSTimeZone name永远不会返回特殊区域(但会返回例如Europe/London)?
谁能证实这一点?
【问题讨论】:
标签: ios timezone nstimezone
我不认为这是一个安全的假设。在 OS X 上,在我的时区和语言环境(美国英语,UTC-6)中,我可以运行以下代码:
NSTimeZone *utc = [NSTimeZone timeZoneWithName:@"Etc/UTC"];
NSTimeZone *london = [NSTimeZone timeZoneWithName:@"Europe/London"];
NSLog(@"utc name = %@", [utc name]);
NSLog(@"london name = %@", [london name]);
它给出以下输出:
UTC 名称 = 等/UTC
伦敦名称 = 欧洲/伦敦
因此,如果一个时区在实例化时被赋予了一个特殊区域,它将继续使用它的名称。作为一个复杂的附加层,使用+timeZoneWithAbbreviation: 也会得到不同的名称,例如:
NSTimeZone *utc2 = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
NSLog(@"utc2 name = %@", [utc2 name]);
utc2 名称 = GMT
【讨论】: