返回不同的NSTimeZone名称

时间:2010-01-31 12:30:15

标签: iphone

我注意到在某些设备上,特定时区的NSTimeZone name方法可以返回不同的值。测试布里斯班时区时,我的设备返回@"Australia/Brisbane",而另一个用户的设备返回"Etc/GMT-10"。两款iPhone都运行3.1.2。

Date and Time Programming Guide for Cocoa表示:

  

timeZoneWithName :传递给此方法的名称可能位于任何一个   系统理解的格式,用于   例如EST,Etc / GMT-2,   美洲/阿根廷/ Buenos_Aires,   欧洲/摩纳哥,或美国/太平洋,如图所示   在以下代码片段中。

我想知道什么可以决定使用哪个值?装置?语言?

2 个答案:

答案 0 :(得分:1)

我发现了原因是什么。

从Apple的内置列表手动设置时区时,会返回正确且准确的时区名称。但是,一些移动运营商通过无线方式提供当前时区偏移,如果是这种情况,Apple会提供“自动”设置,允许iPhone在移动到另一个时区时自动更改时区。

问题在于,虽然提供了当前的GMT偏移量,但无法确定用户所处的纬度。显然,例如,澳大利亚有几个城市的时区为GMT -10。因此,没有特定的时区名称,只有手机当前为GMT -10。

答案 1 :(得分:0)

我从未想象你描述的是什么。根据我的经验,它会返回您使用它创建的名称。

在任何情况下,如果您使用UI显示名称,则应调用[NSTimeZone localizedName:locale:]以强制使用您想要的名称样式。