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

我的测试:

NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]);
NSLog(@"System Time Zone %@",[[NSTimeZone systemTimeZone] name]);

推荐答案

用户(或您的应用程序或其他应用程序)可以随时更改应用程序的默认时区(使用+[NSTimeZone setDefaultTimeZone])或系统时区(使用系统首选项).+[NSTimeZone localTimeZone]返回一个代理,该代理将始终充当应用程序的current默认时区,即使该默认时区发生更改.您可以更改应用程序的默认时区,使其行为与其他时区类似.

+[NSTimeZone systemTimeZone]返回current系统时区(使用系统首选项设置).在大多数情况下,这些都是相同的(我相信应用程序的默认时区设置为应用程序启动时的系统时区).

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

Objective-c相关问答推荐

try 从 id 确定类的类型时,Objective-C消息传递不合格的 id

让 NSRunLoop 等待设置标志的最佳方法?

静态和动态单元格的 UITableView 混合?

带有 IB_DESIGNABLE 的 UIButton 会引发运行时属性警告,并且不会在 Interface Builder 中呈现

从 NSError 返回 NSString

是否可以在 nsstring 中包含引号?

改变 setContentOffset:animated: 的速度?

UITableView - Select 了哪一行?

iOS 内存分配 - 一个应用程序可以使用多少内存?

在 Objective C 中使用 extern

Objective C - 如何连接整个字符串数组?

选中时选中的 UItableViewCell 保持蓝色

在 UITableView 的 iOS 文档目录中列出保存的文件?

分组的 UITableView 在底部有 20px 的额外填充

当 UIView 框架更改时,视图内的 AVPlayer 层不会调整大小

根据文本量更改 UITableViewCell 高度

UITableView ,重新加载时滚动到底部?

如何调整 UITableView 中原型单元格的左边距?

如何更新 Core Data 中的现有对象?

公开只读但具有私有设置器的 Objective-C 属性