ホームページ > バックエンド開発 > Python チュートリアル > strftime(\'%s\') を使用せずに Python 日時オブジェクトをエポックタイムに正確に変換する方法

strftime(\'%s\') を使用せずに Python 日時オブジェクトをエポックタイムに正確に変換する方法

DDD
リリース: 2024-11-20 04:53:01
オリジナル
323 人が閲覧しました

How to Accurately Convert a Python datetime Object to Epoch Time Without Using strftime('%s')?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート