首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >系统时区与选定时区

系统时区与选定时区
EN

Stack Overflow用户
提问于 2011-10-25 06:31:46
回答 1查看 2.7K关注 0票数 3

比较两个时区最好的方法是什么?

在使用NSTimeZone方法比较两个- (BOOL)isEqualToTimeZone:(NSTimeZone *)aTimeZone实例时,我面临一个问题。

代码语言:javascript
运行
复制
NSString *timeZoneName = ...

NSTimeZone *sytemTimeZone = [NSTimeZone systemTimeZone];
NSTimeZone *selectedTimeZone = [NSTimeZone timeZoneWithName:timeZoneName];

if ([sytemTimeZone isEqualToTimeZone:selectedTimeZone]) 
    isEqual = YES;  
else 
    isEqual = NO;

步骤1:转到设置(应用程序)>常规>日期和时间>时区并搜索“奥斯汀”。你会得到的条目是“奥斯汀,美国”。选择此时区。这应该是你的新系统时区了!

步骤2:创建一个小型iPhone/iPad应用程序。使用[NSTimeZone knownTimeZoneNames]获取时区名称的列表。那就去找“奥斯汀”。它不在那里!所以,我想我们可以用“美国/芝加哥”作为时区?

为什么设置的时区列表与我们的不同?

步骤3:现在比较“美国/芝加哥”的系统时区和时区。他们不匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-24 08:00:23

我已经为这个发布了一个bug --这个bug是,奥斯汀不在已知的时区列表中,而是由设置应用程序提供的。

根据苹果工程师的说法:

对于两个

,要比较相等,名称和数据(作为-data的返回)必须相等。您在比较时区时必须小心,因为由于历史原因,两个区域可能与格林尼治时间有相同的偏移,但不是相同的时区。请记住,时区用于各种日历计算,这意味着它们只有在历史上始终具有相同的GMT偏移量、相同的夏时制转换等情况下才是相等的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7885468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档