カテゴリ: Python 更新日: 2025/11/06

Pythonで異なるタイムゾーンの時間を扱う方法!初心者でもわかるpytzとzoneinfoの使い方

Pythonで異なるタイムゾーンの時間を扱う方法(pytz / zoneinfo)
Pythonで異なるタイムゾーンの時間を扱う方法(pytz / zoneinfo)

先生と生徒の会話形式で理解しよう

生徒

「先生、同じPythonでも、海外の時間と日本の時間ってどうやって扱えばいいんですか?」

先生

「とても大切なポイントですね。Pythonでは、pytzzoneinfoという機能を使えば、簡単にタイムゾーンを扱えるんですよ。」

生徒

「へえ〜、でも“タイムゾーン”ってそもそも何ですか?」

先生

「じゃあまずは、タイムゾーンの意味から丁寧に説明していきましょう!」

-

1. タイムゾーンとは何か?

1. タイムゾーンとは何か?
1. タイムゾーンとは何か?

「タイムゾーン(time zone)」とは、地域ごとに決められている標準時刻のことです。地球は丸いので、世界中で同じ時間が流れているわけではなく、日本とアメリカでは朝と夜が逆になります。このズレを調整するために、国や地域ごとに「タイムゾーン」という考え方があるのです。

たとえば、日本は「Asia/Tokyo(アジア・トウキョウ)」というタイムゾーンで、協定世界時(UTC)よりも9時間進んでいます(UTC+9)。

2. Pythonでタイムゾーンを扱うには?

2. Pythonでタイムゾーンを扱うには?
2. Pythonでタイムゾーンを扱うには?

Pythonでは、日時(にちじ)を扱うときにdatetimeモジュールを使います。でも、このままだとタイムゾーンの情報がついていません。そこで使うのが以下の2つです。

  • pytz:古くから使われているライブラリ。多くの解説サイトで紹介されています。
  • zoneinfo:Python3.9以降に標準搭載された新しい方法。追加インストール不要。

3. pytzを使ったタイムゾーンの設定

3. pytzを使ったタイムゾーンの設定
3. pytzを使ったタイムゾーンの設定

pytzを使うと、世界中のタイムゾーンに変換できます。インストールが必要ですが、広く使われています。

まずはインストールしましょう。


pip install pytz

次に、日本とニューヨークの現在時刻を表示するコード例です。


from datetime import datetime
import pytz

# タイムゾーンの設定
tokyo = pytz.timezone("Asia/Tokyo")
ny = pytz.timezone("America/New_York")

# 現在時刻を取得して、タイムゾーンを付ける
now_tokyo = datetime.now(tokyo)
now_ny = now_tokyo.astimezone(ny)

print("日本時間:", now_tokyo)
print("ニューヨーク時間:", now_ny)

日本時間: 2025-09-03 21:00:00+09:00
ニューヨーク時間: 2025-09-03 08:00:00-04:00

このようにtimezone()で地域を指定し、datetime.now()に渡すことで、その地域の現在時刻がわかります。

4. zoneinfoを使ったタイムゾーンの設定(Python3.9以降)

4. zoneinfoを使ったタイムゾーンの設定(Python3.9以降)
4. zoneinfoを使ったタイムゾーンの設定(Python3.9以降)

zoneinfoは、Python3.9以降で標準で使えるタイムゾーン管理機能です。追加のインストールは不要で、シンプルに使えます。


from datetime import datetime
from zoneinfo import ZoneInfo

# 現在時刻(タイムゾーン付き)
now_tokyo = datetime.now(ZoneInfo("Asia/Tokyo"))
now_ny = now_tokyo.astimezone(ZoneInfo("America/New_York"))

print("日本時間:", now_tokyo)
print("ニューヨーク時間:", now_ny)

日本時間: 2025-09-03 21:00:00+09:00
ニューヨーク時間: 2025-09-03 08:00:00-04:00

ZoneInfoを使うと、pytzと同じようにタイムゾーン変換ができますが、より現代的でシンプルな書き方ができます。

-

5. UTCとは?世界の基準時間を知ろう

5. UTCとは?世界の基準時間を知ろう
5. UTCとは?世界の基準時間を知ろう

UTC(協定世界時)とは、世界中で共通に使われる「基準の時間」です。インターネットの世界や国際的なデータ管理では、UTCで時間を統一することがよくあります。

たとえば、Pythonで現在のUTC時刻を取得するには次のように書きます。


from datetime import datetime, timezone

now_utc = datetime.now(timezone.utc)
print("UTC時間:", now_utc)

UTC時間: 2025-09-03 12:00:00+00:00

UTCはタイムゾーンの基準としてとても重要なので、覚えておきましょう。

6. タイムゾーン変換のよくある使い方と注意点

6. タイムゾーン変換のよくある使い方と注意点
6. タイムゾーン変換のよくある使い方と注意点

実際に開発の現場では、以下のような場面でタイムゾーンの操作が必要になります。

  • 国際的なユーザーがいるWebサービス
  • サーバーがUTCで動いていて、日本時間に変換したいとき
  • 異なる地域のスケジュールを比較するとき

注意点として、タイムゾーンのないdatetime.now()は、パソコンの設定によって結果が変わるので注意しましょう。常にtimezoneZoneInfoをつける習慣をつけると安全です。

7. タイムゾーン一覧を確認する方法

7. タイムゾーン一覧を確認する方法
7. タイムゾーン一覧を確認する方法

使えるタイムゾーンの名前を調べたいときは、次のコードで一覧を出すことができます。


import pytz

for tz in pytz.all_timezones:
    print(tz)

たとえば、「Asia/Tokyo」や「Europe/London」など、たくさんの地域名が表示されます。zoneinfoでもほぼ同じ名前が使えます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-