尝试找出以下代码导致 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)
答案 0 :(得分:2)
夏令时将于2015年11月1日结束.25小时的差异是正确的。夏令时开始时,春天也将有23小时的一天。
这就是为什么,如果你想确保在另一个日期获得相同的时钟时间,你不能只是加上或减去24小时的倍数。
这仅适用于观察夏令时的地方,这可能是原始问题的一些评论者在当地时区看到24小时差异的原因。