代码之家  ›  专栏  ›  技术社区  ›  Michael Waterfall

正在返回不同的NSTimeZone名称

  •  1
  • Michael Waterfall  · 技术社区  · 16 年前

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

    Date and Time Programming Guide for Cocoa 声明:

    时区名称 系统可以理解的格式,例如 美国/阿根廷/布宜诺斯艾利斯, 如图所示,欧洲/摩纳哥或美国/太平洋

    2 回复  |  直到 16 年前
        1
  •  1
  •   Michael Waterfall    16 年前

    我已经发现了原因。

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

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

        2
  •  0
  •   TechZen    16 年前

    在任何情况下,如果您使用该名称进行UI显示,则应调用 [NSTimeZone localizedName:locale:]