【问题标题】:Time Zone Support value - objective-c - cocoa-touch时区支持值-objective-c-cocoa-touch
【发布时间】:2012-08-15 19:40:28
【问题描述】:

我一直在寻找一段时间,并进行了大量的研究和试验,但我无法找到一种方法来检索存储在 iOS 设备上的时区支持的用户设置中的值。

我研究了 NSTimeZone 便捷方法 +systemTimeZone、+resetSystemTimeZone、+defaultTimeZone、+localTimeZone。我什至完全理解它们之间的区别,以及我们如何为每个应用程序设置自己的默认时区,以及首次调用默认值如何返回 system.然后系统会被缓存,如果设备更改时区,则需要重置。

问题是,systemTimeZone 始终是设备实际所在的位置,而不是在时区支持下的设备设置中设置的值。

我什至研究过 [[NSCalendar currentCalendar] timeZone] 以及 [[NSCalendar autoupdatingCurrentCalendar] timeZone]]。

我什至试过 [[[NSLocale currentLocale] objectForKey:NSCurrentCalendar] timeZone] 和 [[[NSLocale autoupdatingCurrentLocale] objectForKey:NSCurrentCalendar] timeZone]

没有返回设备的 Settings.app -> 邮件、通讯录、日历 -> 时区支持 -> 时区的值。

有谁知道如何检索 Settings.app -> 邮件、联系人、日历 -> 时区支持 -> 时区设置的值?

感谢和干杯!

【问题讨论】:

    标签: objective-c nscalendar nstimezone nslocale


    【解决方案1】:

    如果这有点离题,请原谅我,但您确定您真的想从以下位置访问 时区支持 设置吗?

    • Settings.app -> 邮件、通讯录、日历 -> 时区支持

    否则我不会发这篇文章,但是当你说出以下内容时,你让我想到了:

    问题是,systemTimeZone 始终是设备实际所在的位置,而不是在时区支持下的设备设置中设置的值。

    很遗憾,您在这里的陈述并不完全正确。 +systemTimeZone 将返回设备实际所在的时区除非用户已关闭自动设置并在以下位置选择了特定时区:

    • Settings.app -> 常规 -> 日期和时间

    这将更改要在系统范围内使用的时区,状态栏中的时间会立即反映这一点,以适应新设置。

    您之前尝试访问的内容似乎侧重于日历约会在本机 Calendar.app 中的表示方式,并且似乎是该应用程序私有的(以及该区域中的其余设置)。

    如果您正在寻找可以由用户修改的有效系统范围的时区设置,那么 Date & Time 下的 Time Zone 是去。这将是+systemTimeZone 返回的值。

    另一方面,如果您确实必须访问邮件、联系人、日历下的时区支持设置,恐怕我无法为您提供帮助,对此我深表歉意分心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 2011-01-18
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多