2016-08-20 76 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) 
相關問題