NSDate timeIntervalSinceDate错误计算60分钟

时间:2015-10-28 03:17:20

标签: swift datetime

尝试找出以下代码导致 90,000 的原因,这一天只有1小时。创建的日期都设置为连续几天的中午,因此答案应为 86,400 (24 * 60 * 60)。

let currentCalendar = NSCalendar.currentCalendar();
let components1 = NSDateComponents()
components1.year = 2015
components1.month = 11
components1.day = 1
components1.hour = 12
components1.minute = 0
components1.second = 0
let myDate1 = currentCalendar.dateFromComponents(components1)!

let components2 = NSDateComponents()
components2.year = 2015
components2.month = 10
components2.day = 31
components2.hour = 12
components2.minute = 0
components2.second = 0
let myDate2 = currentCalendar.dateFromComponents(components2)!

let difference = myDate1.timeIntervalSinceDate(myDate2)

运行swift 2(Xcode 7.0)

1 个答案:

答案 0 :(得分:2)

夏令时将于2015年11月1日结束.25小时的差异是正确的。夏令时开始时,春天也将有23小时的一天。

这就是为什么,如果你想确保在另一个日期获得相同的时钟时间,你不能只是加上或减去24小时的倍数。

这仅适用于观察夏令时的地方,这可能是原始问题的一些评论者在当地时区看到24小时差异的原因。