ホームページ >バックエンド開発 >Python チュートリアル >[python] pytz, dateutil を使わずに異なるタイムゾーンの日時に変換する方法

[python] pytz, dateutil を使わずに異なるタイムゾーンの日時に変換する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-27 16:11:13459ブラウズ

pytz や dateutil は必要ありません。Python は異なるタイムゾーンでの日付と時刻の変換をネイティブに実装します

この記事では、サードパーティのライブラリ datetimezoneinfo を必要とせずに、Python 3.6 以降で pytz モジュールと dateutil モジュールを使用して、異なる形式の日付と時刻を簡単に変換する方法を紹介します。タイムゾーン。

コア メソッド: datetime オブジェクトの astimezone メソッドを使用します。

簡単な手順:

  1. タイムゾーン情報を含むdatetimeオブジェクトを作成します。
  2. astimezone メソッドを使用して日時をターゲットのタイムゾーンに変換します。

前提条件:

  • Python >= 3.6
  • tzdata (Windows システムおよび一部の特殊な環境のインストールが必要な場合があります)

tzdata を確認してインストールします:

ターミナルまたはコマンド プロンプトで次のコマンドを実行して、システムに必要なタイム ゾーン データがインストールされているかどうかを確認します。

<code class="language-bash">python3 -c '__import__("zoneinfo").available_timezones()'</code>

出力が空のセット set() の場合、tzdata をインストールする必要があります:

<code class="language-bash">pip install tzdata</code>

詳細な手順と例:

1. タイムゾーン情報を含む datetime オブジェクトを作成します:

  • 現在時刻を取得し、タイムゾーンを指定します。 datetime.now() メソッドを使用し、tz パラメーターを ZoneInfo("localtime") として指定して現地時間を取得します。
<code class="language-python">from datetime import datetime
from zoneinfo import ZoneInfo

dt = datetime.now(tz=ZoneInfo("localtime"))</code>
  • 特定の日付時刻とタイムゾーンを指定します。 datetime コンストラクターを使用して、tzinfo パラメーターを指定します。
<code class="language-python">dt = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul"))</code>
  • UNIX タイムスタンプから変換: datetime.fromtimestamp() メソッドを使用し、tz パラメーターを指定します。
<code class="language-python">unix_time = 1675000000  # 示例UNIX时间戳
dt = datetime.fromtimestamp(unix_time, tz=ZoneInfo("UTC"))</code>

2. astimezone メソッドを使用してタイムゾーンを変換します:

astimezone() メソッドを使用して、datetime オブジェクトをターゲットのタイムゾーンに変換します。

<code class="language-python">pst = dt.astimezone(ZoneInfo("US/Pacific"))</code>

例: 2025 年 1 月 1 日 0:00 トルコのイスタンブール時間から米国の太平洋標準時 (PST) に変換します。

<code class="language-python">from datetime import datetime
from zoneinfo import ZoneInfo

tr = datetime(2025, 1, 1, 0, 0, tzinfo=ZoneInfo("Europe/Istanbul"))
pst = tr.astimezone(ZoneInfo("US/Pacific"))

print(f"Istanbul Time: {tr.isoformat()}")
print(f"Pacific Standard Time: {pst.isoformat()}")</code>

出力は次のようになります:

<code>Istanbul Time: 2025-01-01T00:00:00+03:00
Pacific Standard Time: 2024-12-31T13:00:00-08:00</code>

[python] pytz, dateutil を使わずに異なるタイムゾーンの日時に変換する方法

上記の手順により、追加のサードパーティ ライブラリに依存せずに、Python ネイティブ モジュールを簡単に使用して、さまざまなタイム ゾーンでの日付と時刻の変換を完了できます。 実際のニーズに基づいて、datetime オブジェクトを作成する適切な方法を選択してください。

以上が[python] pytz, dateutil を使わずに異なるタイムゾーンの日時に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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