[コメントの次の提案を編集]
BenAlpertの を使用する Pythonで日時オブジェクトをエポック(UNIX時間)からのミリ秒に変換するにはどうすればよいですか 次のことができます:
from datetime import datetime
def unix_time(dt):
epoch = datetime.utcfromtimestamp(0)
delta = dt - epoch
return delta.total_seconds()
def unix_time_millis(dt):
return int(unix_time(dt) * 1000)
a = datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ")
unix_time_millis(a)
戻り値:
1435371005653
これは、2015年6月27日土曜日02:10:05GMTに相当します。 (予想通り)
日時の.strftime('%s')
を使用することもできます 次を使用してUNIX時間を取得するには、ミリ秒も使用します(ただし、これはお勧めしません ):
from decimal import Decimal
int(Decimal(datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ").strftime('%s.%f'))*1000)
戻り値:
1435396205653
同等:2015年6月27日土曜日09:10:05GMT (サンディエゴの私のマックで;注 :これは私たちが期待していたものから7時間オフです。
エラーの原因は、上記のリンクのコメントとこれ> .strftime('%s')
に関する回答 行動。 J.F.セバスティアンは、「サポートされていない、移植性がない、認識されている日時オブジェクトに対して誤った結果をサイレントに生成する可能性がある、入力がUTC(質問のように)であるがローカルタイムゾーンがUTCでない場合は失敗する」と指摘しています