启动应用程序时,我将默认时区设置为GMT [NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];。
然后,在随后对[NSTimeZone]的调用中,我使用-localTimeZone。直到iOS 10,一切正常工作,我得到了GMT-0作为返回的时区。现在,在iOS 11上,我得到了我的本地时间,也就是GMT-3.
另外,如果我调用-defaultTimeZone,我也得到GMT-0,这是正确的答案。现在有人知道为什么-localTimeZone改变了它的行为?
发布于 2017-10-06 14:36:37
这是iOS11中的一个bug。我提交了一份雷达,它被苹果标记为“33629367的复制”( iOS11.1测试版至今仍是个未知数)。在大多数情况下,最好停止使用localTimeZone.这有点像一场线程噩梦。
事情应该如何运作:
在iOS11中,NSTimeZone localTimeZone似乎等同于NSTimeZone systemTimeZone
https://stackoverflow.com/questions/46499155
复制相似问题