ゆるテックノート

タイムゾーン一覧

タイムゾーンは、特定の日付をどの地域の時刻として扱うかを決めるルールです。UTCから何時間ずれるかという「オフセット」と区別し、Asia/TokyoなどのIANA IDで地域を指定します。

基本の見方

同じ地域でも、夏時間や制度変更によってオフセットは変わります。地域名だけでなく日付も指定して変換します。

用語の整理

  • IANA IDはAsia/TokyoやAmerica/New_Yorkなどの識別子です。一般に地域/都市の形ですが、Etc/UTCや階層の深い名前もあります。すべての都市が個別のIDを持つわけではありません。
  • UTCオフセットは、その瞬間のUTCからの差です。+09:00だけでは、東京か別の地域かは分かりません。
  • CSTなどの略称には複数の意味があります。地域ルールが必要な処理では、略称だけに頼りません。
  • DST(夏時間)は季節による時計変更です。1時間変更が多いものの、すべての地域で同じ幅・同じ日付ではありません。

代表的なタイムゾーン

2026年1月15日と7月15日の各12:00 UTCにおけるオフセットです。標準時の値だけを一年中使わないよう、2つの日付を比較しています。別の日付や過去・将来の変換には、その日付と更新されたタイムゾーンデータを使ってください。

地域別オフセットの比較

IANA ID 1月15日 7月15日
Asia/Tokyo +09:00 +09:00
Asia/Seoul +09:00 +09:00
Asia/Shanghai +08:00 +08:00
Asia/Taipei +08:00 +08:00
Asia/Singapore +08:00 +08:00
Australia/Sydney +11:00 +10:00
Europe/London +00:00 +01:00
Europe/Berlin +01:00 +02:00
Europe/Paris +01:00 +02:00
America/New_York -05:00 -04:00
America/Chicago -06:00 -05:00
America/Denver -07:00 -06:00
America/Los_Angeles -08:00 -07:00
America/Phoenix -07:00 -07:00
America/Sao_Paulo -03:00 -03:00
Etc/UTC +00:00 +00:00

地域ごとの読み方

  • 東京・ソウルはこの2日とも+09:00。表は歴史上ずっと同じ時差だったことを意味しません。
  • シドニーは南半球なので1月が夏時間の+11:00、7月が+10:00です。Australia/Sydneyの値をオーストラリア全体へ適用しません。
  • America/Phoenixはこの2日とも-07:00。アリゾナ州全域が同一ルールではなく、ナバホ・ネーション等は別途確認が必要です。
  • ニューヨークに対して日本は、表の1月は14時間、7月は13時間先です。日付をまたぐ場合もあります。
  • サンパウロはこの2日とも-03:00ですが、過去には夏時間がありました。現在の値で過去の記録を変換しないでください。

運用のコツ

「24時間後」と「翌日の同じ時刻」を使い分け、タイムゾーンのルールを定期的に更新します。

チェックリスト

  • 時点の保存にはUnix時間などを使えます。「毎朝9時」の予定にはローカル時刻・IANA ID・繰り返し条件も必要です。
  • DSTをまたぐカレンダー計算では、単純なUTCの86,400秒加算では意図したローカル時刻にならない場合があります。
  • 表示にはUTCオフセットを添えます。地域を保持する必要があれば、オフセットとは別にIANA IDを保存します。
  • ライブラリが受け付けるIDとタイムゾーンデータの版を確認します。OSとアプリが別のデータを使っている場合もあります。
  • 保存・予定・夏時間の具体例とUnix時間の変換例を合わせて読むと、役割を整理できます。

仕様とデータ

IANA Time Zone Database / Theory and pragmatics / Asia / Australasia / Europe / North America / South America