【问题标题】:Adding 24 hours to NSDate为 NSDate 添加 24 小时
【发布时间】:2015-12-27 23:09:48
【问题描述】:

我正在尝试将 24 小时添加到当前日期,然后保存在 Parse 中。我确实只是这样做并且它正在工作,但我想我调整了一些东西并打破了它,因为现在未来时间存储在 Parse 中作为当前时间。

这是我的代码:

let futureTime = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Hour, value: 24, toDate: NSDate(), options: NSCalendarOptions.WrapComponents)
myObject.setObject(futureTime!, forKey: "futureTime")

回答:

只需将单位切换为 .Day 而不是 .Hour 并添加“1”而不是“24”。不知道为什么 24 不起作用。

【问题讨论】:

  • 您是否尝试过添加一天而不是 24 小时?只是一般建议,不知道它是否能解决您的问题
  • 刚刚试了,谢谢!
  • @cb428 只需为选项 [ ] 传递一个空数组
  • 问题在于您使用了WrapComponents 选项,该选项专门告诉日历不要增加小时结束的日期。但最好添加一天而不是 24 小时,因为添加 24 小时可能会在夏令时激活或停用的日子给你一个意想不到的答案。

标签: ios swift parse-platform


【解决方案1】:

不是添加 24 小时,而是添加等效的 1 天:

let futureTime = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 1, toDate: NSDate(), options: [])

或者 - 要解决实际问题,删除选项

let futureTime = NSCalendar.currentCalendar().dateByAddingUnit.Hour, value: 24, toDate: NSDate(), options: [])

此外,您可以删除NSCalendarUnit.Hour 中的NSCalendarUnit

【讨论】:

  • 请注意,在夏令时激活或取消激活的日子里,添加 24 小时可能会给出意想不到的答案。
  • @robmayoff 嗯,你可能是对的 - 会增加一天“解决”这个问题吗?时间真的会保持不变,只是增加一天 - 这意味着未来的时间将是 25 小时还是 23 小时?
  • 今天早上 7 点加上 1 天 = 明天早上 7 点。可能是未来的 24、25 或 23 小时,今天早上 7 点加上 24 小时 = 明天早上 7 点或早上 6 点或早上 8 点,但总是在未来 24 小时。
  • @gnasher729 好的,如果这是他们内部的工作方式,谢谢你们的澄清
【解决方案2】:

这会在日期上添加一天:

let components: NSDateComponents = NSDateComponents()
components.setValue(1, forComponent: NSCalendarUnit.Day);

let date: NSDate = NSDate()
let tomorrowDate = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: date, options: NSCalendarOptions(rawValue: 0))

希望对你有帮助

【讨论】:

    【解决方案3】:

    当您将options 指定为NSCalendarOptions.WrapComponents 时,它将不起作用。请仅指定 NSCalendarOptions()

    当指定.WrapComponents 时,单元中的溢出不会被带到更高的单元中。这意味着更改时间不会更改任何其他组件。

    添加 1 天而不是 24 小时适用于大多数情况,但这并不是真正的解决方法。当您在 12 月 30 日使用该代码时,您将遇到完全相同的问题 - 天数的变化不会延续到数年。你必须修复options

    【讨论】:

    • 投反对票的人可以评论我的回答有什么问题吗?
    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2010-12-11
    相关资源
    最近更新 更多