Python|タイムゾーンの一覧を取得する

1. はじめに

Pythonで日時を扱う際、タイムゾーンの指定はとても重要です。特に国際的なサービスやシステム開発では、UTCやJST(日本標準時)だけでなく、世界中のタイムゾーンに対応する必要があります。

本記事では、Python|タイムゾーンの一覧を取得するというテーマで、Python初心者〜中級者向けに、タイムゾーンのリストを取得する方法を詳しく解説します。

pytzという外部ライブラリを使えば、数百種類ある世界のタイムゾーンを簡単に取得・利用できます。この記事を読めば、自分のアプリでどのタイムゾーンが使えるのか一覧で確認できるようになります。

 

2. Pythonでタイムゾーン一覧を取得する基本

pytzとは?

pytzは、Pythonでタイムゾーンを扱う際によく使用されるライブラリです。IANA Time Zone Database(世界標準のタイムゾーンデータ)に基づいており、信頼性が高く、広く実務でも使われています。

タイムゾーンの一覧を取得するコード

まずは、pytzを使って利用可能なタイムゾーン一覧を取得する基本的なコードを見てみましょう。

import pytz

# タイムゾーンの一覧を取得
timezones = pytz.all_timezones

# 上位10件だけ表示してみる
for tz in timezones[:10]:
    print(tz)

実行結果:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau

pytz.all_timezonesで、IANAに登録されているすべてのタイムゾーン名(約600個)をリスト形式で取得できます。

pytzのインストール方法

pytzは標準ライブラリではないため、最初にインストールが必要です。以下のコマンドをターミナルまたはコマンドプロンプトで実行してください。

pip install pytz

 

3. よくある使い方・応用例

すべてのタイムゾーンをアルファベット順に表示

用途によっては、タイムゾーンをソートして表示したいことがあります。次のコードでは一覧をソートして表示します。

import pytz

# タイムゾーンをアルファベット順で表示
for tz in sorted(pytz.all_timezones):
    print(tz)

実行結果:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
...
Zulu

特定のキーワードを含むタイムゾーンだけを抽出

たとえば「Asia」から始まるタイムゾーンだけを抽出したい場合は、以下のように条件分岐を使います。

import pytz

# Asia地域のタイムゾーンのみ表示
asia_timezones = [tz for tz in pytz.all_timezones if tz.startswith('Asia')]
for tz in asia_timezones:
    print(tz)

実行結果:

Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
...

実務での応用:ユーザーのタイムゾーン選択UIに活用

Webアプリやデスクトップアプリで、ユーザーがタイムゾーンを選択する機能を作る際、この一覧をドロップダウンメニューなどに利用できます。ユーザーごとの日時変換や通知機能などに役立ちます。

 

4. 注意点・エラー対策

pytzのインストール忘れ

ModuleNotFoundError: No module named 'pytz'というエラーが出る場合は、pytzがインストールされていません。

pip install pytzを再度実行してください。

使用タイムゾーン名の誤り

たとえばAsia/TokyoではなくJapan/Tokyoのように存在しない名称を使うと、UnknownTimeZoneErrorが発生します。

タイムゾーン名は、必ずpytz.all_timezonesで取得した一覧の中から使用しましょう。

datetimeとの組み合わせでの注意

pytzを使ってdatetimeにタイムゾーン情報を追加する際は、localize()メソッドを使う必要があります。以下のように書きます。

from datetime import datetime
import pytz

# タイムゾーンを設定して日時を生成
tz_tokyo = pytz.timezone('Asia/Tokyo')
dt = tz_tokyo.localize(datetime(2025, 1, 1, 12, 0, 0))
print(dt)

実行結果:

2025-01-01 12:00:00+09:00

 

5. まとめ

今回は「Python|タイムゾーンの一覧を取得する」というテーマで、pytzを使ったタイムゾーンのリスト取得方法とその応用例について解説しました。

  • pytz.all_timezonesで世界中のタイムゾーンを一覧取得できる
  • 特定の地域(例:Asia)だけを抽出可能
  • ユーザー設定や時間変換など実務でも非常に有用

タイムゾーンの一覧を扱えるようになることで、国際対応アプリやローカル時間調整の処理がグッとスマートになります。ぜひ自分のプロジェクトで活用してみてください。

学習のコツ: pytzで取得したタイムゾーン名をもとに、実際の日時変換処理と組み合わせて練習すると理解が深まります!

タイトルとURLをコピーしました