首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTimeZone: localTimeZone和systemTimeZone有什么区别?

NSTimeZone: localTimeZone和systemTimeZone有什么区别?
EN

Stack Overflow用户
提问于 2009-10-06 17:31:05
回答 2查看 28.1K关注 0票数 42

在NSTimeZone类下,有+localTimeZone和+systemTimeZone。我在iphone模拟器上做了一个测试,两者都返回了指示相同时区的NSTimeZone对象。有什么关系?我应该使用哪一个来找出iPhone的时区设置?谢谢

我的测试:

代码语言:javascript
复制
NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]);
NSLog(@"System Time Zone %@",[[NSTimeZone systemTimeZone] name]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-06 18:20:46

用户(或您的应用程序或其他应用程序)可以随时更改应用程序的默认时区(使用+[NSTimeZone setDefaultTimeZone])或系统时区(使用系统首选项)。+[NSTimeZone localTimeZone]返回一个代理,它将始终充当应用程序的当前默认时区,即使默认时区发生更改也是如此。您可以更改应用程序的默认时区,使其行为如同处于不同的时区。

+[NSTimeZone systemTimeZone]返回当前系统时区(使用系统首选项设置)。在大多数情况下,这两个时区是相同的(我相信应用的默认时区设置为应用启动时的系统时区)。

如果您想知道系统的时区设置,您可能希望使用+[NSTimeZone systemTimeZone]。如果你只是想让你的应用程序在正确的时区下工作,你可能需要+[NSTimeZone localTimeZone]

票数 54
EN

Stack Overflow用户

发布于 2009-10-06 18:17:41

对于这类事情,The docs提供了大量有用的信息。在这种情况下,他们说:

  • localTimeZone是当前应用程序的默认时区。这可以由用户设置,或在应用程序中以编程方式设置(或可能以其他方式设置)。它基本上是一个指向具有间接级别的defaultTimeZone的指针;如果默认时区更改,localTimeZone将更改为well.
  • systemTimeZone,,另一方面,它是核心系统使用的时区。与localTimeZone.

不同的是,如果系统时区在应用程序执行期间发生更改,则不会更改缓存值

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

https://stackoverflow.com/questions/1526990

复制
相关文章

相似问题

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