Swift 3两个日期之间的时间间隔错误

时间:2017-04-21 13:57:06

标签: datetime swift3

我正在尝试确定使用DateComponents创建的两个日期之间的间隔。如果我在第二天之前1年制作第一个日期,我会得到365天,0小时,0分钟和0秒。如果我把日期分开(这里400年),突然我的约会时间缩短了11分56秒。这是代码:

import Foundation
var mycal = Calendar(identifier: .iso8601)
var datum = DateComponents(year:1600, month:1, day:1, hour:12, minute:0,
                           second:0)
let j2000 = DateComponents(year:2000, month:1, day:1, hour:12, minute:0,
                           second:0)
let datum_date = mycal.date(from: datum)
let j2000_date = mycal.date(from: j2000)

let interval = mycal.dateComponents([.day, .hour, .minute, .second], from:j2000_date!, to:datum_date!)
print("Datum: \(datum_date!)") //1600-01-01 19:48:04 +0000
print("j2000: \(j2000_date!)") //2000-01-01 20:00:00 +0000

请注意倒数第二行:注释显示打印产生的内容。我也尝试过格里高利历,同样的问题。我不确定这种不一致的确切程度有多远,我已经回到了足够远的地方,而且有时似乎“坚持”#34;当我改变代码再次移近时。奇怪的是,"间隔"似乎显示正确的天数(此处为-146097),但显示的日期不正确,我可能需要在我的计算中。有人有什么想法吗?

0 个答案:

没有答案