2017-02-13 57 views
3

我必須在1904年以蟒蛇轉換時間以秒爲單位。我找到了一個解決方案,但它沒有給出預期的結果。從1904轉換時間以秒爲單位

事實上,我不明白python如何轉換時間,因爲我用shell腳本完成了這項工作,並且python中的答案不一樣。

在外殼的一個例子:

origine=$(date -d '1904-01-01 00:00:00 +0000' '+%s') 
T0day=${origine#-} 
Tday= $(date -d '2011-10-06 18:05:56 +0000' '+%s') 
echo "obase=16;"$Tday+$T0day"" | bc 

如果你嘗試做在Python這樣的:

dt=datetime.datetime(2011, 10, 06, 18, 05,56) 
t1=int(time.mktime(dt.timetuple())) 

dt=datetime.datetime(1904, 1, 1, 0, 0, 0) 
t2=int(time.mktime(dt.timetuple())) 

t3= int(t1+t2) 
print (hex(t3)) 

結果在外殼:CAB39E84

結果在python:CAB38264

在Python中有更好的編碼解決方案嗎?

回答

2

使用timedelta.total_seconds()

import datetime 

dt_base = datetime.datetime(1904, 1, 1, 0, 0, 0) 
dt = datetime.datetime(2011, 10, 06, 18, 05, 56) 
total_seconds = (dt - dt_base).total_seconds() 

print(total_seconds) 
# 3400769156.0 
+0

非常感謝!我試過其他的解決方案,但同樣不好的結果......這一個工作 –

相關問題