Python 標準ライブラリを使用して UTC 日付時刻をローカル日付時刻に変換する方法

Mary-Kate Olsen
リリース: 2024-11-03 09:02:02
オリジナル
348 人が閲覧しました

How to Convert UTC Datetime to Local Datetime Using Python Standard Library?

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

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