Clockhub Logo
ブログお問い合わせ
記事一覧
リファレンス5 分で読めます

UTC オフセットと夏時間の実用ガイド

「UTC+8」は、緯度のように土地へ固定された属性に見えます。しかしそうではありません。これはルールであり、多くの国ではそのルールが年に2回書き換わります。会議の設定、ログ、ソフトウェアで起きる時差のトラブルは、ほぼすべて「ルールを事実と取り違えたこと」に由来します。

この記事では、オフセットの意味、変則的なオフセットの読み方、いまも時刻を切り替えている地域、そして切り替え日に実際に何が壊れるのかを整理します。

世界の標準時区分図。上下の端に各タイムゾーンの UTC オフセットが記されている

地図: CIA、パブリックドメイン、Wikimedia Commons より

オフセットとは

オフセットは、現地の時計と協定世界時(UTC)との差を、UTC に符号と時間数を続けて表したものです。

  • UTC+08:00 は、現地の時計が UTC より8時間進んでいることを意味します。UTC が 04:00 なら現地は 12:00 です。
  • UTC−05:00 は、現地の時計が UTC より5時間遅れていることを意味します。UTC が 04:00 なら現地は前日の 23:00 です。

間違えやすいのは符号です。正のオフセットは本初子午線より東、負のオフセットは西です。東は進み、西は遅れます。

GMT と UTC は厳密には別物

GMT(グリニッジ標準時)はオフセット UTC+0 のタイムゾーンで、イギリスの冬に使われています。UTC はオフセットの基準となる原子時の標準です。日常的には互換に扱えますが、「GMT+8」という書き方は厳密には不正確で、正しくは「UTC+8」です。GMT 風のラベルを出力するシステムもありますが、UTC とみなして問題ありません。

整数時間ではないオフセット

世界のオフセットのおよそ4分の3は整数時間です。だからこそ、残りは忘れられます。

オフセット地域
UTC+05:30インド、スリランカ
UTC+05:45ネパール
UTC+08:45オーストラリア西部ユークラ
UTC+09:30オーストラリア中部(ノーザンテリトリー、南オーストラリア)
UTC+10:30ロード・ハウ島
UTC+12:45ニュージーランド、チャタム諸島
UTC+13:00トンガ、サモア、キリバス(ライン諸島)
UTC−03:30カナダ、ニューファンドランド
UTC−09:30マルキーズ諸島

ネパールの45分オフセットは世界で唯一です。「オフセットは必ず3600秒の整数倍」と仮定したコードを書くと、この数行がそれを壊します。

1国1オフセット

中国は地理的に約5時間分の幅がありますが、全国で UTC+8 の単一オフセットを使っています。新疆ウイグル自治区の西部では、日の出が現地時間の10時ごろになることもあります。スペインは地理的にはほぼ UTC+0 に位置しますが、中欧に合わせて UTC+1(夏は UTC+2)を採用しています。これらは天文学的な結果ではなく政治的な選択です。タイムゾーンは立法であって幾何学ではない、という良い例です。

夏時間

夏時間は春に時計を1時間進め、秋に1時間戻すことで、日照時間と労働時間の重なりを良くする仕組みです。

いまも切り替える地域

  • EU とイギリス — 3月最終日曜から10月最終日曜まで。
  • アメリカ、カナダ — 3月第2日曜から11月第1日曜まで。
  • オーストラリア、ニュージーランド — 南半球なので期間が逆で、9月下旬または10月上旬に始まり翌年4月上旬に終わります。
  • チリ、パラグアイ、ブラジルの一部 — 南半球の日程に各地域の変種。

切り替えない地域

  • 中国 — 1986年から1991年まで試行し、廃止されました。
  • 日本 — 1948年から1951年まで実施され、その後は復活していません。
  • インド、東南アジアの大部分、ロシア、トルコ — 夏時間なし。
  • アフリカと中東の大部分 — 例外を除いて夏時間なし。
  • ハワイ、アリゾナ(ナバホ・ネーションを除く)、プエルトリコ — 米国内で適用を外している地域。

東京とニューヨークを調整する場合、年の大部分は14時間差、その途中で一時的に13時間差になり、また14時間差に戻ります。この数字は安定しません。安定しているのは各タイムゾーンのルールだけです。

切り替え日に起きる不具合

毎年繰り返されるバグは2種類あり、原因は同じです。どちらも「すべての現地時刻はちょうど1回だけ存在する」という仮定から来ています。

春の繰り上げ:存在しない現地時刻。 アメリカでは時計が 02:00 から 03:00 へ飛ぶため、その日に 02:30 は存在しません。02:30 に設定した定期実行は、動かないか、03:00 に動くか、2回動くか——実装次第です。EU の 01:00 から 02:00 への繰り上げでも同じで、01:30 は存在しません。

秋の繰り下げ:2回訪れる現地時刻。 時計が 02:00 から 01:00 へ戻るため、01:30 は1時間を挟んで2回発生します。素朴なスケジューラは2回実行します。「01:30」とだけ記録されたログは、オフセットがなければどちらか判別できません。

どちらも正解は同じです。保存と比較は UTC で行い、現地時刻への変換は表示のときだけ行う。 UTC には夏時間がなく、秒が重複することも飛ぶこともありません。オフセットなしの現地時刻をデータベースに保存するのは、3月に爆発する時限装置です。

実践チェックリスト

  1. オフセットなしの現地時刻を保存しない。 2026-03-08 02:30 は時刻点ではなく、2026-03-08T02:30-05:00 が時刻点です。
  2. 設定にはオフセットではなく IANA のゾーン名を書く。 America/New_York は夏時間のルールを内包していますが、UTC-5 は内包していません。
  3. 定例会議を設定する前に両側の切り替え日を確認する。 片方だけ切り替わる場合があります。
  4. 「存在しない時刻」を想定する。 現地の 00:00 から 03:00 の間に走る定期処理があるなら、切り替え日の挙動を必ず確認してください。
  5. オフセットが整数時間だと決めつけない。 30分・45分のオフセットは実在し、素朴な計算を壊します。

変換を確認する方法

単発の変換では、暗算するより2つのゾーンを並べて見るほうが速く確実です。タイムゾーン変換は各ゾーンの現在のオフセットを表示し、夏時間も自動で処理します。複数のゾーンを同時に見たいならワールドクロックが向いています。

時刻点ではなく長さ——「この2つのタイムスタンプの間は何時間か」——を求めるなら、時間計算機を使ってください。絶対的な経過時間で計算するため、夏時間の影響を受けません。