タイムゾーンとは?UTC、GMT、DST、IANAデータベースまでわかりやすく解説
タイムゾーンは単純に見えますが、実際に扱い始めると急に難しくなります。UTCオフセット、夏時間、日付変更線、30分単位の地域まで、世界がどのように時刻を決めているのかをまとめて解説します。
目次
タイムゾーンとは?
タイムゾーンとは、同じ標準時を使う地球上の地域のことです。地球はおおまかに24の主要タイムゾーンに分けられ、それぞれ経度約15度、つまり1時間分の時差に対応します。
実際には、タイムゾーンの境界は経線に沿ってまっすぐ引かれているわけではありません。政治的な国境、海岸線、国や地域の都合に合わせて曲がっています。そのため現在使われているUTCオフセットは、30分や15分単位のものも含めて38種類以上あります。
すべてのタイムゾーンは、協定世界時(UTC)からの差で定義されます。たとえばニューヨークは冬はUTC-5、夏時間中はUTC-4です。東京は通年でUTC+9です。
タイムゾーンの簡単な歴史
タイムゾーンが存在する前は、各都市が地方太陽時、つまり太陽が空で最も高くなる時刻を基準に時計を合わせていました。西へ50マイル離れた町では「正午」が数分ずれていました。移動が遅い時代には問題になりませんでしたが、19世紀に鉄道と電信が普及すると混乱が大きくなりました。
主な出来事
| 年 | 出来事 |
|---|---|
| 1847 | イギリスの鉄道がグリニッジ標準時(GMT)を「鉄道時間」として採用 |
| 1876 | サンドフォード・フレミング卿が、アイルランドで列車に乗り遅れた経験をきっかけに世界標準のタイムゾーンを提案 |
| 1883 | 北米の鉄道が4つの標準タイムゾーンを採用 |
| 1884 | ワシントンD.C.の国際子午線会議で、グリニッジを本初子午線とし、24時間のタイムゾーン体系を確立 |
| 1918 | 米国議会が標準時法を可決し、タイムゾーンとDSTを法制化 |
| 1972 | 協定世界時(UTC)が公式利用でGMTに代わる世界の時刻標準になる |
UTCとGMTの違い
多くの人はUTCとGMTを同じ意味で使いますが、厳密には少し違います。
| 項目 | GMT | UTC |
|---|---|---|
| 正式名称 | Greenwich Mean Time | Coordinated Universal Time |
| 基準 | 地球の自転(天文学的) | 原子時計(高精度) |
| 精度 | 地球の自転が不規則なためわずかに変動 | 原子時計の精度。うるう秒で補正 |
| 位置づけ | 現在もタイムゾーンとして使われる(英国の冬時間など) | 世界の時刻管理の標準 |
| DST | 直接は使わない(英国は夏にBSTへ移行) | 使わない。UTCは夏時間を採用しない |
実用上、コンピューター処理や日常用途のほとんどではUTCとGMTは同じ時刻と考えて問題ありません。違いは測定方法にあります。UTCは原子時計を使い、地球の実際の自転と合わせるためにうるう秒を追加することがあります。
略称「UTC」は妥協の産物です。英語圏は「CUT」(Coordinated Universal Time)を、フランス語圏は「TUC」(Temps Universel Coordonne)を望みました。どちらでもない形としてUTCに合意しました。
UTCオフセットの仕組み
すべてのタイムゾーンは、UTCからのオフセットとしてUTC+/-HH:MM形式で表されます。
- 正のオフセット(
UTC+)はグリニッジより東にあり、時刻が進んでいます - 負のオフセット(
UTC-)はグリニッジより西にあり、時刻が遅れています - UTC+0は本初子午線そのものです
2つのタイムゾーン間で変換するには、オフセットの差を計算します。たとえばUTC+9(東京)からUTC-5(ニューヨークEST)へ変換する場合は次のようになります。
差 = (-5) - (+9) = -14時間
東京が15:00の場合:
15:00 - 14時間 = 01:00(同じ日、ニューヨーク)
または次のようにも考えられます:
15:00 東京 -> 06:00 UTC -> 01:00 ニューヨーク世界の主なタイムゾーン
よく参照される主なタイムゾーンは次のとおりです。
| 略称 | 名称 | オフセット | 主な都市 |
|---|---|---|---|
| UTC | 協定世界時 | +0:00 | レイキャビク、アクラ |
| EST/EDT | 東部時間 | -5:00 / -4:00 | ニューヨーク、トロント、マイアミ |
| CST/CDT | 中部時間 | -6:00 / -5:00 | シカゴ、ヒューストン、メキシコシティ |
| PST/PDT | 太平洋時間 | -8:00 / -7:00 | ロサンゼルス、シアトル、バンクーバー |
| CET/CEST | 中央ヨーロッパ時間 | +1:00 / +2:00 | ベルリン、パリ、ローマ |
| IST | インド標準時 | +5:30 | ムンバイ、デリー、バンガロール |
| CST | 中国標準時 | +8:00 | 北京、上海、台北 |
| JST | 日本標準時 | +9:00 | 東京、大阪、ソウル(KST) |
| AEST/AEDT | オーストラリア東部時間 | +10:00 / +11:00 | シドニー、メルボルン |
注意点として、CSTのような略称は曖昧です。Central Standard Time(UTC-6)、China Standard Time(UTC+8)、Cuba Standard Time(UTC-5)のいずれも指す可能性があります。そのため開発では、America/ChicagoのようなIANA識別子を使うべきです。
夏時間(DST)
夏時間(Daylight Saving Time)とは、暖かい季節に時計を1時間進め、夕方の日照時間を長く使う制度です。タイムゾーン処理で最も混乱を生む要因です。
DSTの仕組み
- 春に進める - 時計を1時間進めます(例: 午前2:00が午前3:00になります)。1時間が「消える」ように見えます。
- 秋に戻す - 時計を1時間戻します(例: 午前2:00が午前1:00になります)。1時間が「繰り返される」ように見えます。
つまり秋の切り替え時には、午前1:30のような時刻が2回発生します。最初は夏時間、次は標準時です。これはスケジューリングシステムやデータベースにとって大きな悩みの種になります。
DSTを使う地域
主に北米とヨーロッパを中心に、約70か国がDSTを採用しています。一方で、採用していない国や地域も多くあります。
- DSTなし: アジア、アフリカ、南米の多く、アリゾナ州(一部を除く)、ハワイ、インドの大部分、中国、日本
- DSTあり: 米国とカナダの多く、ヨーロッパの多く、オーストラリアの一部、ニュージーランド
- 季節が逆: 南半球でDSTを使う国(オーストラリア、ニュージーランド、ブラジルの一部)は、北半球とは逆の月に切り替わります
議論
DSTは1784年にベンジャミン・フランクリンが半ば冗談として提案し、第一次世界大戦中に燃料節約のため広く採用されました。現在では議論が増えています。春の切り替え後には心臓発作、交通事故、職場での負傷が増えるという研究もあります。EUは2019年にDST廃止を可決しましたが、実施は何度も延期されています。米国上院も2022年にDSTを恒久化するSunshine Protection Actを可決しましたが、下院で停滞しました。
IANAタイムゾーンデータベース
IANAタイムゾーンデータベース(tz databaseまたは作成者Arthur David OlsonにちなんでOlson databaseとも呼ばれます)は、ほぼすべてのOS、プログラミング言語、Webアプリで使われるタイムゾーンデータの標準的な情報源です。
識別子はArea/Location形式です。例を挙げます。
America/New_York- 東部時間(EST/EDTの切り替えを自動処理)Europe/London- 冬はGMT、夏はBSTAsia/Tokyo- JST、DSTなしAsia/Kolkata- IST(UTC+5:30)Pacific/Auckland- NZST/NZDT
このデータベースには、各国がオフセットを変更した時期、DSTを導入または廃止した時期、境界を変更した履歴など、数十年分の履歴データが含まれています。ボランティアコミュニティによって管理され、各国の変更に合わせて年に何度も更新されます。
このため、IANA識別子は単純なUTCオフセットより優れています。America/New_YorkはESTとEDTの切り替え時期を自動的に把握しますが、単なるUTC-5にはそれができません。
珍しいタイムゾーンと30分単位の地域
すべてのタイムゾーンが1時間単位のオフセットを使うわけではありません。地域によっては30分、場合によっては15分単位のオフセットを使います。
| 地域 | オフセット | 理由 |
|---|---|---|
| インド | UTC+5:30 | 国の東西の端の中間を取った妥協 |
| イラン | UTC+3:30 | 国内の太陽正午に合わせた歴史的な選択 |
| ネパール | UTC+5:45 | インドと区別するために選ばれた45分オフセットの国 |
| チャタム諸島(NZ) | UTC+12:45 | ニュージーランド東方の小さな島々 |
| ニューファンドランド(カナダ) | UTC-3:30 | カナダ加入前に30分オフセットを採用した歴史的経緯 |
| 中国 | UTC+8(単一ゾーン) | 地理的には5つのタイムゾーンにまたがるが、全国で1つの時刻を使用 |
中国は特に興味深い例です。東西約5,200kmに広がるにもかかわらず、国全体で北京時間(UTC+8)を使います。そのため西部のカシュガルでは、冬に公式時計で午前10時ごろになってようやく日の出を迎えます。
国際日付変更線
国際日付変更線(IDL)は、太平洋上のおおよそ経度180度線に沿う仮想的な線です。これを越えると次のようになります。
- 西へ移動(アジア -> アメリカ): 1日を加える
- 東へ移動(アメリカ -> アジア): 1日を引く
日付変更線はまっすぐではありません。国を分断しないように曲がっています。特に大きな変更は2011年にサモアで起きました。サモアはUTC-11からUTC+13へ移り、2011年12月30日金曜日を丸ごとスキップしました。主要な貿易相手であるオーストラリアとニュージーランドに合わせるため、国全体が木曜日から土曜日へ進んだのです。
キリバスは世界で最も早いタイムゾーンの記録を持っています。ライン諸島はUTC+14を使うため、地球上で最初に新年を迎える地域です。UTC-12(ベーカー島)より丸26時間進んでいます。
開発者のためのタイムゾーン
コードでタイムゾーンを扱うのは間違いが起きやすい分野です。開発者が守るべき基本原則は次のとおりです。
1. 時刻はUTCで保存する
データベースには常にタイムスタンプをUTCで保存します。ユーザーのローカルタイムゾーンへの変換は表示層でのみ行います。
// JavaScript - 現在時刻をUTCで取得
const now = new Date();
console.log(now.toISOString());
// "2026-04-04T14:30:00.000Z" (Z = UTC)
// 表示用に特定のタイムゾーンへ変換
console.log(now.toLocaleString('ja-JP', {
timeZone: 'America/New_York'
}));
// "2026/4/4 10:30:00"
console.log(now.toLocaleString('ja-JP', {
timeZone: 'Asia/Tokyo'
}));
// "2026/4/4 23:30:00"2. オフセットではなくIANA識別子を使う
ユーザーのタイムゾーンは固定オフセット(-05:00)ではなく、IANA識別子(America/New_York)として保存します。固定オフセットではDSTの切り替えを考慮できません。
3. Intl APIまたはライブラリを使う
現代のJavaScriptには組み込みのIntl.DateTimeFormat APIがあります。複雑な処理では、専用ライブラリの利用を検討してください。
# Python - using zoneinfo
from zoneinfo import ZoneInfo
from datetime import datetime
utc_now = datetime.now(ZoneInfo("UTC"))
tokyo = utc_now.astimezone(ZoneInfo("Asia/Tokyo"))
new_york = utc_now.astimezone(ZoneInfo("America/New_York"))
print(f"UTC: {utc_now}")
print(f"Tokyo: {tokyo}")
print(f"New York: {new_york}")4. シリアライズにはISO 8601を使う
APIで日付を送るときは、明示的なオフセットまたはUTCを表すZサフィックス付きのISO 8601形式を使います。
良い例: "2026-04-04T14:30:00Z" (UTC)
良い例: "2026-04-04T10:30:00-04:00" (EDT)
良い例: "2026-04-04T23:30:00+09:00" (JST)
避ける例: "April 4, 2026 2:30 PM" (タイムゾーン情報がない)
避ける例: "1743782400" (秒なのかミリ秒なのか曖昧)タイムゾーンでよくある間違い
避ける: UTCオフセットが一定だと思い込む
ニューヨークは冬はUTC-5ですが、夏はUTC-4です。-5を固定すると、1年の半分で誤った時刻になります。
避ける: 3文字の略称を使う
CSTはCentral、China、Cubaのいずれも意味します。ISTもIndia、Ireland、Israelを指す場合があります。必ずIANA名を使いましょう。
避ける: すべての日が24時間だと思う
DST切り替え日には1日が23時間または25時間になることがあります。「24時間を足す」と「1日を足す」は異なる結果になる場合があります。
避ける: タイムゾーン情報なしでローカル時刻を保存する
"2026-04-04 10:30:00"だけでは役に立ちません。それは東京の10:30ですか、ニューヨークの10:30ですか。両者には13時間の差があります。
避ける: DST切り替えが世界中で同時に起きると思う
米国とヨーロッパは異なる日に切り替わります。ニューヨークとロンドンの時差が通常の5時間ではなく4時間になる週があります。
OK: 黄金律
UTCで保存し、ローカルで表示する。IANA識別子を使う。DST計算はライブラリに任せる。タイムゾーン処理を自作しない。
タイムゾーンをすぐに変換
無料のタイムゾーン変換ツールを使えば、任意のタイムゾーン間で時刻を変換し、世界各地の現在時刻を確認し、DSTの切り替えにもブラウザ上で対応できます。
タイムゾーン変換ツールを試す ->参考資料
- IANA. Time Zone Database. https://www.iana.org/time-zones
- International Telecommunication Union. Coordinated Universal Time (UTC). ITU-R Recommendation TF.460-6.
- National Institute of Standards and Technology. A Walk Through Time: The History of Time Zones. https://www.nist.gov/pml/time-and-frequency-division/time-realization/history
- Bartky, I.R. (2007). One Time Fits All: The Campaigns for Global Uniformity. Stanford University Press.
- Mozilla Developer Network. Intl.DateTimeFormat. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat