2017-04-18 73 views
1

我無法圍繞此包裹我的頭。python datetime.utcnow沒有顯示正確的時間戳

假設unixtime是自1970.1.1以來的總秒數,爲什麼datetime.utcnow()。timestamp()返回不同的數字?

>>> from datetime import datetime 
>>> now = datetime.utcnow() 
>>> print(now.timestamp()) 
1492525439.406112 
>>> print((now-datetime(1970,1,1)).total_seconds()) 
1492536239.406112 

回答

2

你有一個時區的問題。

兩個值之間的差異恰好是10,600秒,恰好是三個小時。

utcnow位於UTC時區。 datetime使用本地機器時區。改變他們都使用相同的時間基準,你會看到不再有差異。

您可以將datetime.utcnow更改爲datetime.now,或將datetime(...)更改爲datetime(...).replace(tzinfo=...)