我试图将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不会工作。
答案 0 :(得分:3)
而不是添加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
NSCalendarUnit.Hour
答案 1 :(得分:0)
这会在日期上添加一天:
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))
希望这有帮助
答案 2 :(得分:0)
将options
指定为NSCalendarOptions.WrapComponents
时,它将无效。请改为仅指定NSCalendarOptions()
。
当指定.WrapComponents
时,单位中的溢出不会被带入更高的单位。这意味着更改小时数不会改变任何其他组件。
对于大多数情况,添加1天而不是24小时将起作用,但这不是真正的修复。在12月30日使用该代码时,您将遇到完全相同的问题 - 天数的变化将不会持续数年。您必须修复options
。