我想我對資料時間的時間戳有一些誤解。 我所讀到的描述似乎是說,時間戳代表Unix時間(從1970年開始的秒數)
。但是當我運行下面的程式時
import datetime
date = datetime. datetime(2020, 1 , 1, 0, 0, 0)
time1 = datetime.datetime.timestamp(date)
time2 = (date - datetime. datetime(1970,1,1, 0,0,0)。) total_seconds()
print(time1)
print(time2)
它的列印結果是:
1577862000.0。
1577836800.0
這些不應該是一樣的嗎?我有什么誤解嗎?
uj5u.com熱心網友回復:
時區。unix紀元是1970年1月1日在UTC,但你的本地區域不是UTC,所以當你使用datetime.datetime(1970,1,1,0,0,0)創建一個 "天真的 "資料時間實體時,它與真正的unix紀元有幾個小時的偏差。
將tzinfo=datetime.timezone.utc附加到兩個已創建的資料時間實體上,你就會發現它們是平等的。
另外,使用datetime.datetime.fromtimestamp(0)而不是datetime.datetime(1970,1,1,0,0,0)來獲得一個與紀元重合的 "天真 "日期時間實體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/328886.html
標籤:
