2017-02-13 4 views
3

Pythonで1904年からの時間を秒単位で変換する必要があります。私は解決策を見つけましたが、期待した結果が得られていません。時間を秒単位で変換します。1904

実際、私はこのスクリプトを使ってこの仕事をしたので、pythonがどのように時間を変換するのか分かりません。答えは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

多くの感謝!私は他の解決策を試みたが、同じ悪い結果...この1つの仕事 –

関連する問題