系统时区与所选时区
比较两个时区的最佳方法是什么?
我在使用 - (BOOL)isEqualToTimeZone:(NSTimeZone *)aTimeZone 比较两个
NSTimeZone
实例时遇到问题方法。
NSString *timeZoneName = ...
NSTimeZone *sytemTimeZone = [NSTimeZone systemTimeZone];
NSTimeZone *selectedTimeZone = [NSTimeZone timeZoneWithName:timeZoneName];
if ([sytemTimeZone isEqualToTimeZone:selectedTimeZone])
isEqual = YES;
else
isEqual = NO;
第1步:进入设置(应用程序)>一般>日期和时间时间>时区并搜索“奥斯汀”。您将获得的条目将是“美国奥斯汀”。选择该时区。这现在应该是您的新系统时区!
第 2 步: 创建一个小型 iPhone/iPad 应用程序。使用[NSTimeZoneknownTimeZoneNames]
获取时区名称列表。然后尝试找到“奥斯汀”。它不在那里!那么,我想我们可以使用“美国/芝加哥”作为时区?
为什么设置的时区列表与我们的不同?
第 3 步:现在将系统时区与“美国/芝加哥”的时区进行比较。他们不匹配。
What's the best way to compare two time zones?
I'm facing an issue while comparing two NSTimeZone
instances using - (BOOL)isEqualToTimeZone:(NSTimeZone *)aTimeZone
method.
NSString *timeZoneName = ...
NSTimeZone *sytemTimeZone = [NSTimeZone systemTimeZone];
NSTimeZone *selectedTimeZone = [NSTimeZone timeZoneWithName:timeZoneName];
if ([sytemTimeZone isEqualToTimeZone:selectedTimeZone])
isEqual = YES;
else
isEqual = NO;
Step 1: Go to Settings (Application) > General > Date & Time > Time Zone and search for "Austin". The entry that you'll get will be "Austin, U.S.A". Select this Time Zone. This SHOULD be your new system time zone now!
Step 2: Create a small iPhone/iPad application. Use [NSTimeZone knownTimeZoneNames]
to get a list of time zone names. Then try to find "Austin". It's not there! So, i guess we can use "America/Chicago" as the timezone?
Why is the Setting's timezone list different from ours?
Step 3: Now compare the system timezone with time zone for "America/Chicago". They don't match.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我为此发布了一个错误 - 该错误是奥斯汀不在已知时区列表中,但由设置应用程序提供。
根据苹果工程师的说法:
I've posted a bug for this - The bug is that Austin isn't in the known time zone list yet is offered by the settings app.
As per an Apple Engineer: