ホームページ >バックエンド開発 >Python チュートリアル >Python で UTC 日時文字列をローカル タイムゾーンに変換する方法

Python で UTC 日時文字列をローカル タイムゾーンに変換する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-30 10:32:13478ブラウズ

How to Convert UTC Datetime Strings to Local Timezones in Python?

UTC 日時文字列をローカル日時文字列に変換する

質問:

UTC を変換する方法App Engine の Bigtable に文字列として保存されている日時文字列を、エンドユーザーの正しいタイムゾーンは?

答え:

UTC 日時文字列をユーザーの正しいタイムゾーンの日時に変換するには、python-dateutil ライブラリを使用できます。このライブラリは、zoneinfo (Olson) データベース上に tzinfo 実装を提供し、正規名によるタイム ゾーン ルールの簡単な参照を可能にします。

実装:

from datetime import datetime
from dateutil import tz

# Hardcode zones:
from_zone = tz.gettz('UTC')
to_zone = tz.gettz('America/New_York')

# Auto-detect zones:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()

# Create a datetime object from the UTC string
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S')

# Convert the datetime object to UTC timezone
utc = utc.replace(tzinfo=from_zone)

# Convert the datetime object to the user's timezone
local = utc.astimezone(to_zone)

タイムゾーンごとに推奨されるストレージ情報:

  • "-5:00" または "EST": この方法はシンプルですが、ユーザーのタイムゾーンの一定のオフセットを前提としているため制限があります。
  • 正規名: Olson データベースからの正規名を使用すると、より柔軟で、タイムゾーンを認識します。これは、タイムゾーンの過去の変更を考慮に入れるためです。 python-dateutil ライブラリを使用すると、正規名でタイムゾーンを参照できます。

たとえば、「-5:00」は、次のコマンドを使用して「America/New_York」に変換できます。

import pytz
est = pytz.timezone("America/New_York")
est_name = est.zone

以上がPython で UTC 日時文字列をローカル タイムゾーンに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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