strftime を使用して Python Datetime をエポックに変換する
strftime('% を使用して Python datetime オブジェクトをエポックからの秒数に変換する場合s') 形式を使用すると、予期しない結果が発生する可能性があります。エポックからの正しい秒数ではなく、1 時間異なる値が取得される場合があります。これは、strftime がシステムのタイムゾーンを考慮してタイムゾーンのシフトを適用するためです。
解決策:
この問題を回避し、正しいエポック タイムスタンプを取得するには、いくつかのオプションが利用可能です。 :
Python 3.3 および後で:
timestamp() メソッドを使用します:
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.2 または以前:
変換を明示的に実行します:
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
strftime('%s') の使用を避けます:
次の点に注意してください。 %s は、Python の strftime 関数では正式にサポートされていません。その機能はシステムの strftime 実装に依存しており、プラットフォームごとに異なり、タイムゾーンの不一致が生じる可能性があります。したがって、エポック タイムスタンプを正確に変換するには、上記の方法を使用することをお勧めします。
以上がPython 日時オブジェクトをエポック タイムスタンプに正確に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。