假设iOS 7中的NSTimeZone timeZoneWithName:
接受具有非特殊区域的时区ID(如America/New_York
)和special area(如{{1}中所述),这是否正确?但是Etc/UTC
永远不会返回特殊区域(但会返回例如NSTimeZone name
)?
谁能证实这一点?
答案 0 :(得分:4)
我认为这不是一个安全的假设。在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 name = Etc / UTC
伦敦名字=欧洲/伦敦
因此,如果某个时区在实例化时有一个特殊区域,它将继续使用其名称。作为一个复杂的复杂层,使用+timeZoneWithAbbreviation:
也会得到不同的名称,例如:
NSTimeZone *utc2 = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
NSLog(@"utc2 name = %@", [utc2 name]);
utc2 name = GMT