開発 へ戻る
タイムゾーン詳細 (DST) — IANA TZ の現在 offset と切替日を確認

タイムゾーン詳細 (DST) — IANA TZ の現在 offset と切替日を確認

IANA タイムゾーン (Asia/Tokyo, America/New_York, Europe/Paris など) を選ぶと、現在の UTC offset、サマータイム (DST) の有無、次の DST 切替日時、今年と来年の切替リストを表示します。cron 設定で「DST で 1 時間ズレるのに気付かなかった」「夏時間で実行されない時刻 (春の 1 時間ジャンプ) を選んでいた」「2 回実行される時刻 (秋の 1 時間後退) を選んでいた」といった事故を防ぐ用途、海外 SaaS の運用、グローバルチームのリリーススケジュール調整、海外旅行の予定確認に。timezone-convert (任意日時を複数 TZ に翻訳) や world-clock (リアルタイム並列表示) と併用してください。Intl.DateTimeFormat ベース、ブラウザ内で完結します。

使い方

IANA タイムゾーン名を入力 (例: Asia/Tokyo, America/New_York) するか、プリセットから選択。 現在の現地時刻 / UTC offset / 略称 (JST / EST など) / DST 観測有無が表示されます。 次の DST 切替日時 (春の時刻ジャンプ / 秋の時刻後退) と、今年・来年の切替リストもあわせて確認できます。 「ブラウザの現在地」ボタンで Intl API が解決した現在の TZ を一発投入できます。

詳細解説

タイムゾーン情報とシステム設定情報の機微性

タイムゾーン情報の確認が必要になる場面は、分散システムの設計・デプロイ・デバッグです。複数リージョンに展開するサービスで「どの TZ で何時に処理が走るか」を確認する際、その情報はインフラ構成・スケジュール設計・障害対応手順と密接に関係します。DST の切替による cron の誤動作を調査する場面では、サービスのスケジュール設定・バッチ処理の構成・データパイプラインの時刻依存部分が対象になります。

タイムゾーン名 (America/New_York, Asia/Tokyo など) 自体はオープンな IANA データですが、「このサービスはどの TZ を使っているか」「DST の切替でどのバッチが影響を受けるか」という組み合わせは内部のシステム設計情報です。タイムゾーン確認のために業務システムの設定情報を外部ツールに送ることは不要です。

「ブラウザの現在地」ボタンとデバイス情報の扱い

本ツールには「ブラウザの現在地」ボタンがあり、Intl.DateTimeFormat().resolvedOptions().timeZone でブラウザが報告するタイムゾーンを入力フィールドに自動入力します。この情報はデバイスの OS から取得されるもので、実際の物理的な位置情報 (GPS) とは異なりますが、その端末がどの地域の時間設定を使っているかを示します。

本ツールでは「ブラウザの現在地」で取得したタイムゾーン名を含め、すべての情報がブラウザのページ内でのみ処理されます。タイムゾーン名をサーバーに送信することも、Geolocation API で位置情報を取得することもありません。

Intl.DateTimeFormat だけで DST 検出から切替時刻まで完結する

このツールは ECMAScript 標準の Intl.DateTimeFormat API のみを使って DST の検出と切替時刻の特定を行います。1 年の各日について Intl.DateTimeFormat(tz).format(date) から UTC offset を計算し、前日と異なる日を切替候補として抽出します。その日内を 1 分間隔で二分探索して切替時刻を特定します。tzdata ファイルのバンドルも外部 API の呼び出しも必要ありません。

すべての計算がブラウザの JavaScript エンジン内で完結します。業務システムのタイムゾーン設定・DST 影響の調査・バッチスケジュールの確認を、内部の設定情報を外部に送ることなく行えます。

分散システムの DST トラブルシューティングと設計確認に

cron 系のスケジューラーで DST 切替の前後に誤動作が起きた場合、本ツールで対象タイムゾーンの切替時刻・方向 (前進 / 後退) を確認するのが出発点になります。「春の時刻ジャンプ」(2:00→3:00) では 2:30 に設定した cron が飛ばされ、「秋の時刻後退」(2:00→1:00) では 1:30 のジョブが 2 回実行されます。複数タイムゾーンをまたぐシステムの設計では、影響を受けるリージョンの切替タイミングを事前に把握することがトラブル防止につながります。

IANA tz database と Olson データベースのバージョニング

「America/New_York」「Asia/Tokyo」のような IANA タイムゾーン名は、IANA Time Zone Database (旧名 Olson データベース) で定義され、年に数回 (2024a2024b2025a のような版番号) で更新されます。各国の DST 政策変更・法改正・歴史的補正がこの更新で反映され、たとえば 2024 年にメキシコ・チワワ州が DST を恒久廃止、ヨルダンが恒久夏時間に移行、といった改定が tzdata2024a などに記録されています。ブラウザの Intl.DateTimeFormat はこのデータをブラウザビルド時に組み込んでおり、Chrome / Firefox / Safari でリリースサイクルが異なるためバージョンが揃わないことがあります。

本ツールの DST 検出は、Intl.DateTimeFormat(undefined, { timeZone, timeZoneName: 'short' }).formatToParts(date) で各日付の UTC オフセットを取得し、前日との差分を二分探索で 1 分粒度まで絞り込みます。ブラウザに組み込まれた tz データの版番号が古い場合、最近の政策変更を反映していない可能性があるため、本番システムでの正確性が要件であれば OS 側の /usr/share/zoneinfo (Linux) や tzdata パッケージのバージョンと突き合わせるのが安全です。Intl.supportedValuesOf('timeZone') で対応 TZ 名のリストも取得できます。

サーバー側 cron / Kubernetes CronJob の TZ 設定のばらつき

スケジューラーごとに TZ の扱いが大きく異なる点も実装上の落とし穴です。Linux の cron は伝統的に /etc/localtime 依存で、TZ=Asia/Tokyo 環境変数を crontab に書けばジョブ単位で TZ を切り替えられます (cron 実装による)。systemd timer は OnCalendar= に明示的に Asia/Tokyo 等を書けますが、デフォルトは UTC ではなくシステムタイムゾーンです。Kubernetes CronJob は 1.27 で spec.timeZone フィールドが GA となり、それ以前は UTC 固定でした。Quartz Scheduler (Java) は @CronSchedulezone 属性を渡せますが、Spring Boot のデフォルトは JVM の user.timezone です。

DST 切替の影響を回避する設計の定番は「サービス全体の cron を UTC で書いて、DST のあるタイムゾーンに依存しない」というものです。AWS EventBridge、Cloudflare Workers Cron Triggers、GitHub Actions のスケジュールトリガはすべて UTC 固定で、これは意図的な選択です。本ツールで自社の業務 TZ (例: Asia/Tokyo) と AWS 側の UTC オフセットの差を確認しておくと、「朝 9 時に動くはずのバッチが UTC 0 時で書かれて DST 期間中だけ 1 時間ずれた」という典型的な事故を避けられます。Asia/Tokyo は DST がないため固定の +09:00 ですが、America/* 系・Europe/* 系を扱う場合は本ツールで毎年の春・秋の切替日を確認するのが運用上の保険になります。具体的な日時を別 TZ に翻訳したい場合は timezone-convert が、UTC 基準の epoch との往復は unix-timestamp が同じくブラウザ内で完結します。

よくある質問

DST 切替はどう検出してる?
1 年の各日について Intl.DateTimeFormat で UTC offset を計算し、隣り合う日で offset が変わった点を切替候補として抽出。さらにその日内を 1 分間隔で二分探索して切替時刻を 1 分精度で特定します。タイムゾーンデータベース (tzdata) を持たないブラウザでも動作します。
「春の 1 時間ジャンプ」「秋の 1 時間後退」とは?
DST 開始時 (春) に 2:00→3:00 のように時計が進むため、2:30 のような時刻はその日に「存在しない」。逆に DST 終了時 (秋) に 2:00→1:00 のように時計が戻るため、1:30 のような時刻が「2 回ある」。cron などの定期実行で 2:30 を指定していると、春は飛ばされ秋は 2 回実行される事故が起こります。
tz が DST を観測しているかどうかはどう判定?
今年の各月で UTC offset を取得し、異なる offset が 2 種類以上あれば DST 観測中と判定します。Asia/Tokyo のように一年中固定 offset の TZ では「DST 観測なし」と表示。
未来の DST 切替はどこまで信頼できる?
ブラウザの tzdata に依存します。各 OS の tz データベースが定期的に更新されるため、来年の切替は概ね正確、それ以降は将来法制度の変更で変わる可能性があります。長期予約システムを構築する場合は実時刻でなく相対時刻 (UTC + offset) で保持する設計を推奨。
データはどこかに送信されますか?
いいえ。Intl.DateTimeFormat だけで完結します。

「送らない」を確かめるには

このツールは入力データを外部に送信しません。仕組み・監査手順・運営方針は以下で詳しく説明しています。

類似のツール

タイムゾーン変換 — 任意日時を世界各都市の現地時刻に一覧表示

タイムゾーン変換 — 任意日時を世界各都市の現地時刻に一覧表示

任意の日時と起点タイムゾーン (IANA) を指定し、複数のタイムゾーンでの現地時刻・UTC オフセット・日付の前後関係を一覧で表示します。海外との会議調整・締切時刻の翻訳・サマータイム差分の確認に便利。すべてブラウザ内 (Intl API) で処理し、日時データを外部に送信しません。

時刻変換
世界時計 — 主要都市の現在時刻をリアルタイム一覧表示

世界時計 — 主要都市の現在時刻をリアルタイム一覧表示

複数の都市の現在時刻をリアルタイムで並べて表示。任意の都市の時刻を「基準」に設定すると、他の都市はその瞬間の現地時刻に切り替わります。都市の追加/削除に対応。

時刻
Unix タイムスタンプ ⇄ 日時 — TZ 切替対応

Unix タイムスタンプ ⇄ 日時 — TZ 切替対応

UNIX タイムスタンプ (秒 / ミリ秒) と ISO 8601 / 任意のタイムゾーン (デフォルト: UTC, Asia/Tokyo, America/New_York。追加・削除可能) の表記を相互に変換します。ブラウザ内処理。

開発時刻変換
Cron 次回実行時刻 — 5 フィールド対応

Cron 次回実行時刻 — 5 フィールド対応

`0 9 * * 1-5` のような cron 式の次回実行時刻を一覧表示。件数 (10〜100) を選んで、crontab・GitHub Actions・Kubernetes CronJob・Vercel Cron Jobs などのスケジュールが期待通りに動くか動作確認できます。cron-parser をブラウザ内で実行するので、機密スケジュールも外部に送信せずに検証できます。

開発時刻