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

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

Patricia Arquette
リリース: 2024-12-21 18:53:09
オリジナル
456 人が閲覧しました

How to Convert a UTC Datetime String to Local Timezone in Python?

UTC 日時文字列からローカル日時文字列への変換

開発者は、異なるタイム ゾーン間で時間を変換する必要があることがよくあります。たとえば、Android アプリはタイムスタンプ データをサーバー アプリに送信することがありますが、そのためには内部システムに正しいローカル タイムゾーンでデータを保存する必要があります。これには、受信した UTC タイムスタンプを適切な現地時間に変換することが含まれます。

変換の課題

最初に UTC タイムスタンプを日時オブジェクトに変換しようとすると、時間が正しくなくなる可能性がありますオフセット。プログラミングで使用される基礎となる日時オブジェクトは通常、デフォルトでは「ナイーブ」です。つまり、タイムゾーン参照を明示的に示しません。この問題を解決するには、タイムゾーン情報を明示的に指定する必要があります。

タイムゾーン情報の推奨ストレージ

変換を実行する前に、ユーザーの優先タイムゾーン情報を保存することが重要です。 。これは、文字列表現 (例: EST の場合は「-5:00」)、または広く受け入れられている Olson データベースに準拠した正規名 (例: 「America/New_York」) です。

使用Python-dateutil ライブラリ

Python-dateutil ライブラリは便利な tzinfo を提供しますこれらの変換を簡単に処理するために使用できる実装です。

変換を示す例は次のとおりです。

# Import the necessary libraries
from datetime import datetime, strptime
from dateutil import tz

# Convert UTC datetime string to a datetime object with UTC timezone
utc_string = "2011-01-21 02:37:21"
utc_datetime = strptime(utc_string, '%Y-%m-%d %H:%M:%S')
utc_datetime = utc_datetime.replace(tzinfo=tz.tzutc())

# Create a timezone object for the desired local time
local_timezone = tz.gettz('America/New_York')

# Convert the UTC datetime object to the local timezone
local_datetime = utc_datetime.astimezone(local_timezone)

# Print the converted local datetime
print(local_datetime)
ログイン後にコピー

この例では、utc_string は UTC 形式であると想定されており、変換America/New_York タイムゾーンに合わせて行われます。結果として得られる local_datetime は、適用可能な時間オフセットと夏時間ルールを考慮して、それに応じて調整されます。

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

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