尝试将日期转换为时间戳,但是当我将其转换回日期时,日期并不一致

sli*_*boy 2 nsdate ios swift

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
Run Code Online (Sandbox Code Playgroud)

如何使时间戳保持一致?

rma*_*ddy 5

你的问题并不完全清楚,但我怀疑你希望第一和第三个print陈述是一样的.假设这是真的,您需要修复第1行或第2行代码以使用相同的纪元.

第一行使用"1970"时代.第二行使用Cocoa"参考日期"时代.他们不一样.更改两条线中的一条以匹配另一条线.

你想要:

let timestamp = (NSDate().timeIntervalSinceReferenceDate)
let date = NSDate(timeIntervalSinceReferenceDate:timestamp)
Run Code Online (Sandbox Code Playgroud)

要么:

let timestamp = (NSDate().timeIntervalSince1970)
let date = NSDate(timeIntervalSince1970:timestamp)
Run Code Online (Sandbox Code Playgroud)