【问题标题】:iPad - Daylight Saving ConversioniPad - 夏令时转换
【发布时间】:2015-03-26 15:34:16
【问题描述】:

我遇到了一个问题,我想将 NSString 转换为 NSDate,我的设备上的区域设置为纽约,所以当夏令时启用时,我的应用程序行为不端,

例如:03/08/2015 02:00 - 03/08/2015 02:59

每当用户选择此日期范围时,日期选择器会将其移至未来一小时,因为夏令时处于活动状态,但我希望我的应用能够选择/选择此日期范围,因为在其他一些地区有些其他用户正在此日期范围内使用该应用程序并进行一些交易,那么我的应用程序如何处理夏令时。

如果用户从 NSDatePicker 中选择日期范围,或者如果我尝试使用 NSDate 和 NSDateFormatter 创建该日期范围,则会发生上述情况。

谢谢。

【问题讨论】:

  • 您所在的时区根本不存在此日期范围。如果您在美国时区,03/08/2015 1:59 和 03/08/2015 3:00 之间的差异只有一分钟。如果您选择该范围,则在所有其他时区中也是一分钟。没关系,在您的时区中看起来是一小时零一分钟。不要将您所在位置的时间点(不存在 2:00)与时间点混淆。
  • @MatthiasBauch 所以你说我不能为这个范围创建时间戳?你能告诉我 NSDatePicker 中的任何函数或属性可以告诉我我所在地区的日光是否有效吗?
  • 相关:the DST tag wiki

标签: ios nsdate nsdateformatter dst


【解决方案1】:

您询问了NSDatePicker,但我相信这是针对 OSX 的。 iOS 中的 datepicker 类是 UIDatePicker。至少,从文档中看是这样的。

这两个类都有一个timeZone 属性,您可以将其设置为任何有效的NSTimeZone 实例。未明确设置时,默认行为是使用本地时区。

因此,如果您想在另一个时区选择一个具有不同 DST 规则的时间,那么只需相应地设置时区即可。如果您希望能够接受所有值,您可以考虑使用 UTC 时区。

【讨论】:

    猜你喜欢
    • 2012-08-30
    • 2021-09-10
    • 2012-10-31
    • 2018-04-30
    • 2019-12-15
    • 1970-01-01
    • 2018-05-19
    • 2014-06-01
    • 2016-08-10
    相关资源
    最近更新 更多