strftime を使用した Python 日時からエポックへの変換
当初の目的は、次を使用して UTC 時間をエポックからの秒数に変換することでした。ストラフタイム。ただし、'%s' 形式で strftime を使用すると、結果の値は予想されるエポック カウントと 1 時間異なりました。この不一致を調査すると、datetime は単純であると考えられていますが、strftime はシステム時刻を組み込み、タイム ゾーンの違いを調整していることが判明しました。
解決策
この問題を解決するには、次のことを検討してください。次の代替案:
Python 3.3 以降
datetime の 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') の回避
datetime は strftime の '%s' 形式指定子を正式にサポートしていないことに注意することが重要です。その現在の機能は、タイムゾーンの違いを調整するシステムの strftime 実装との相互作用によるものです。 strftime('%s') を使用すると、タイムゾーンの変動により一貫性のない結果が生じる可能性があります。
以上がstrftime(\'%s\') を使用せずに Python 日時オブジェクトをエポックタイムに正確に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。