2016-08-20 75 views
2
let timestamp = (NSDate().timeIntervalSince1970) 
let date = NSDate(timeIntervalSinceReferenceDate: (timestamp)) 

print(NSDate()) // 2016-08-20 18:24:17 +0000 
print(timestamp) // 1471717652.15506 
print(date)  // 2047-08-21 18:24:17 +0000 

如何使时间戳一致?试图将日期转换为时间戳,但是当我将其转换回日期时,日期不一致

+1

你显示你发布并没有真正匹配的代码的输出。这两个时期的差异是31年,所以第一次和第三次印刷报表应该显示31年不同的日期,而不是一天。 – rmaddy

+1

@rmaddy:2016-08-20和2047-08-21确实相差31年:) –

+1

@MartinR Ugh。阅读理解失败。 – rmaddy

回答

5

你的问题并不完全清楚,但我怀疑你想要第一个和第三个print陈述是一样的。假设这是真的,你需要修正第一行或第二行代码以使用相同的时期。

第一行使用“1970”时代。第二行使用Cocoa“参考日期”纪元。他们不一样。改变两条线中的一条以匹配另一条。

你想要么:

let timestamp = (NSDate().timeIntervalSinceReferenceDate) 
let date = NSDate(timeIntervalSinceReferenceDate:timestamp) 

或:

let timestamp = (NSDate().timeIntervalSince1970) 
let date = NSDate(timeIntervalSince1970:timestamp) 
相关问题