Ios NSTimeZone timeZoneWithName缩写在不同的设备上显示不同的缩写

Ios NSTimeZone timeZoneWithName缩写在不同的设备上显示不同的缩写,ios,nsdateformatter,nstimezone,Ios,Nsdateformatter,Nstimezone,我想在标签上显示EDT。我使用了下面的代码,发现它可以在iphone6、6+和iphone4 iOS 7.1上运行。但在iPhone5siOS 8.2、iPhone5iOS 7.1上测试时,我注意到它显示了GMT-4 NSString *labelString = [NSString stringWithFormat:@"%@",[[NSTimeZone timeZoneWithName:@"America/New_York"] abbreviation]] 是设备时区相关的问题还是有人能指出

我想在标签上显示EDT。我使用了下面的代码,发现它可以在iphone6、6+和iphone4 iOS 7.1上运行。但在iPhone5siOS 8.2、iPhone5iOS 7.1上测试时,我注意到它显示了GMT-4

NSString *labelString = [NSString stringWithFormat:@"%@",[[NSTimeZone timeZoneWithName:@"America/New_York"] abbreviation]]

是设备时区相关的问题还是有人能指出我在哪里出错。提前感谢。

这是因为设备上设置了时区。不同的设备设置了不同的时区,这就导致了这种变化

[[NSTimeZone timeZoneWithName:@"America/New_York"] abbreviation]]

这和你在问题中使用的有什么不同?在这两种情况下看起来都像[[NSTimeZone timeZoneWithName:@America/New_York]缩写]]。在一个设备设置系统时区是英国,在另一个设备设置系统时区是孟买。因此[[NSTimeZone timeZoneWithName:@America/New_York]缩写]]进行了相应的计算,并带来了不同的时区缩写。@TomHarrington我刚刚将所有设备上的系统时区更改为IST,所有设备上的时区缩写都相同。