Python 標準ライブラリを使用した UTC 日時からローカル日時への変換
日時オブジェクトを扱う場合、多くの場合、UTC (協定世界時) 間の変換が必要になります。世界時)と現地時間。 Python 標準ライブラリは、これを実現するための組み込み機能を提供します。
pytz Alternative for Python 3.3
Python 3.3 以降では、タイムゾーン モジュールによって変換プロセスが簡素化されます。
<code class="python">from datetime import datetime, timezone def utc_to_local(utc_dt): return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)</code>
Python 2/3 のソリューション
Python 2 および 3 の場合、代替アプローチは、calendar.timegm と datetime.fromtimestamp を使用することです。
<code class="python">import calendar from datetime import datetime, timedelta def utc_to_local(utc_dt): timestamp = calendar.timegm(utc_dt.timetuple()) local_dt = datetime.fromtimestamp(timestamp) assert utc_dt.resolution >= timedelta(microseconds=1) return local_dt.replace(microsecond=utc_dt.microsecond)</code>
使用例
変換を説明するために、次の例を考えてみましょう。
<code class="python">from datetime import datetime utc_dt = datetime(2023, 7, 18, 12, 0, 0, tzinfo=timezone.utc) local_dt = utc_to_local(utc_dt) print(local_dt)</code>
出力:
2023-07-18 18:00:00.000000+06:00
マイクロ秒の解像度がない DateTime に関する注意事項
UTC 日時の解像度がマイクロ秒ではない場合、astimezone メソッドにより、元の日時には存在しないマイクロ秒の値が導入される可能性があります。精度を確保するには、Python 2/3 で提供されている代替メソッドを使用してください。
DST 変更の処理
どちらのソリューションも、夏時間 (DST) の変更を考慮し、正確に実行します。必要に応じて DST を適用または削除して、UTC 日時を適切な現地時間に変換します。
以上がPython 標準ライブラリを使用して UTC 日付時刻をローカル日付時刻に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。