strftime を使用した Python 日時からエポックへの変換: タイムゾーンの不一致の解明
UTC 日時からエポックからの秒数を取得するには、開発者は多くの場合、strftime 関数に依存します。ただし、この質問で示されているように、strftime('%s') を使用して日時をエポックに変換すると、タイムゾーンの調整により不正確な結果が得られる可能性があります。
なぜ不一致があるのですか?
デフォルトでは、strftime はシステムのタイムゾーンを計算に組み込みます。その結果、暗黙的なタイムゾーンのシフトが適用され、特定のタイムゾーンでの日時の誤ったエポック変換が発生します。
正確な変換のためのソリューション
タイムゾーンによる不正確さを回避するにはでは、次の代替アプローチを検討してください:
datetime.datetime(2012, 4, 1, 0, 0).timestamp()
(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 サイトの他の関連記事を参照してください。