【问题标题】:Adding minutes to date in Swift adds extra hour在 Swift 中添加分钟到日期会增加一小时
【发布时间】:2019-03-10 06:11:11
【问题描述】:

我的代码应该从日期选择器获取日期,然后添加一天(1440 分钟),然后更新日期选择器以反映这一点。 问题是它增加了一天加一小时。

let originalDate = dtPickerBed.date
var dateAlarmBedLocal = originalDate.date.adding(minutes: 1440)
//save dateAlarmBedLocal to db here
dtPickerBed.date = dateAlarmBedLocal

我还应该提到“日期”来自这个扩展:

extension Date {
    func adding(minutes: Int) -> Date {
        return Calendar.current.date(byAdding: .minute, value: minutes, to: self)!
    }
}

感谢您的帮助!

【问题讨论】:

  • 为什么要加 1440 分钟而不是加 1 天?请记住,您可能在这里处理夏令时问题。添加 1 天而不是 1440 分钟的另一个原因。
  • 天哪,我认为你是对的。我会检查

标签: swift date time


【解决方案1】:

这是有效的:我应该增加 1 天(从而允许 Swift 处理夏令时)。

let originalDate = dtPickerBed.date
var dateAlarmBedLocal = dtPickerBed.date.adding(day: 1 )
//save dateAlarmBedLocal to db here
dtPickerBed.date = dateAlarmBedLocal

extension Date {
    func adding(day: Int) -> Date {
        return Calendar.current.date(byAdding: .day, value: day, to: self)!
    }
}

【讨论】:

    【解决方案2】:

    rmaddy 是正确的。问题是夏令时。

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      相关资源
      最近更新 更多