時間戳的定義請看百科unix時間戳,須要注意的時間戳爲當前時刻減去UTC時間(1970.1.1)零點時刻的秒數差,與當前系統所處的時區無關,同一時刻無論在任什麼時候區下獲得的時間戳都是同樣的。python
最近由於存儲數據庫須要將時間轉爲時間戳的字節型來存儲,用了python datetime模塊,期間遇到一些問題,如今終於弄懂了時間戳、時間和UTC時間的正確轉換關係,總結如下供你們參考。數據庫
dt=datetime.datetime.now() #獲取本地當前時間
dt.timestamp() #獲取時間戳
注:函數
由1)的闡述獲得python在不一樣時區下都能得到時間戳,我就採用了utc時間得到時間戳,datetime有兩種方式得到utc時間:spa
方式一:unix
dt=datetime.datetime.now(timezone.utc) #類型爲aware datetime object,時區爲utc
dt.timestamp() #經過減去EPOCH獲得時間戳
方式二:code
dt=datetime.datetime.utcnow() #類型爲naive datetime object,不包含時區信息
dt.timestamp() #經過mktime獲得時間戳(獲得的時間戳是錯誤的
datetime.datetime.fromtimestamp(timestamp) #得到本地時間,類型naive datetime obiect
兩種方式得到utc時間,但datetime object類型不同。blog
方式一:get
datetime.datetime.utcfromtimestamp(timestamp) #類型naive datetime object
方式二:數學
datetime.datetime.fromtimestamp(timestamp,timezone.utc) #類型aware datetime object。