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