Iphone 正在返回不同的NSTimeZone名称

Iphone 正在返回不同的NSTimeZone名称,iphone,Iphone,我注意到,在某些设备上,特定时区的NSTimeZone的name方法可以返回不同的值。测试布里斯班时区时,我的设备返回@“Australia/Brisbane”,而另一个用户的设备返回“Etc/GMT-10”。两款iPhone都运行3.1.2 缔约国指出: timeZoneWithName:传递给此方法的名称可能位于以下任意位置: 系统可以理解的格式,例如 示例EST,Etc/GMT-2, 美国/阿根廷/布宜诺斯艾利斯, 如图所示,欧洲/摩纳哥或美国/太平洋 在下面的代码片段中 我只是想知道什么

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

缔约国指出:

timeZoneWithName:传递给此方法的名称可能位于以下任意位置: 系统可以理解的格式,例如 示例EST,Etc/GMT-2, 美国/阿根廷/布宜诺斯艾利斯, 如图所示,欧洲/摩纳哥或美国/太平洋 在下面的代码片段中


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

我从未见过你所描述的情景。根据我的经验,它会返回您创建它时使用的名称


在任何情况下,如果要在UI显示中使用名称,则应调用
[NSTimeZone localizedName:locale://code>强制使用所需的名称样式

我从未见过你所描述的情景。根据我的经验,它会返回您创建它时使用的名称


在任何情况下,如果要在UI显示中使用名称,则应调用
[NSTimeZone localizedName:locale://code>强制使用所需的名称样式

我已经发现了原因

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


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

我发现了原因

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

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