ホームページ  >  記事  >  バックエンド開発  >  Python Datetime オブジェクトをエポックタイムに正確に変換するにはどうすればよいですか?

Python Datetime オブジェクトをエポックタイムに正確に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 12:49:14914ブラウズ

How Can I Accurately Convert Python Datetime Objects to Epoch Time?

strftime を使用した Python 日時からエポックへの変換: タイムゾーンの不一致の解明

UTC 日時からエポックからの秒数を取得するには、開発者は多くの場合、strftime 関数に依存します。ただし、この質問で示されているように、strftime('%s') を使用して日時をエポックに変換すると、タイムゾーンの調整により不正確な結果が得られる可能性があります。

なぜ不一致があるのですか?

デフォルトでは、strftime はシステムのタイムゾーンを計算に組み込みます。その結果、暗黙的なタイムゾーンのシフトが適用され、特定のタイムゾーンでの日時の誤ったエポック変換が発生します。

正確な変換のためのソリューション

タイムゾーンによる不正確さを回避するにはでは、次の代替アプローチを検討してください:

  • Python 3.3 以降: timestamp() メソッドを使用します。このメソッドは、タイムゾーンを調整せずに、エポックからの浮動小数点秒数で正確なタイムスタンプを返します。
datetime.datetime(2012, 4, 1, 0, 0).timestamp()
  • Python 3.2 以前: からの合計秒数を明示的に計算します。 epoch.
(datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()

strftime('%s') の使用に対する注意

strftime('%s') の使用に注意することが重要です。 ) エポック変換では推奨されません。これは、strftime が書式設定引数として '%s' を明示的にサポートしていないためです。その互換性は、タイムゾーン固有の動作を導入する、基盤となるシステムの strftime 実装に由来します。この不一致により不正確な結果が生じる可能性があり、移植可能なエポック変換の信頼性の低い方法となります。

以上がPython Datetime オブジェクトをエポックタイムに正確に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。