システムにおける「時刻」は、ログ、スケジュールジョブ、証明書など、あらゆる動作の基礎になります。
この時間がずれていると、障害調査やセキュリティ監査に大きな影響を与えることがあります。
そのため、UTC や JST などのタイムゾーンの仕組みを正しく理解しておくことは、インフラエンジニアだけでなく、システム運用に関わるすべての方にとって重要です。
UTCとは
UTC(Coordinated Universal Time、協定世界時)は、世界共通の基準となる時刻です。
もともとはイギリス・グリニッジ天文台を基準とした GMT(Greenwich Mean Time)を元にしていますが、UTC は原子時計に基づくより正確な定義が採用されています。
- UTC は地球全体で共通の基準時刻です。
- サーバーやクラウド環境では、内部時刻を UTC で管理するのが一般的です。
- 表示やアプリケーションのログでは、タイムゾーンに応じてローカル時間に変換されます。
たとえば、UTC の 0 時は日本時間(JST)では午前 9 時になります。
JSTとは
JST(Japan Standard Time、日本標準時)は、日本国内で使用される標準時です。
UTC からプラス 9 時間のオフセットを持ちます。
- タイムゾーン名:
Asia/Tokyo - 時差:UTC+9
- サマータイム(夏時間)は採用されていません。
JST は一年を通して固定的に UTC+9 の時差を保ちます。このため、システム運用において季節ごとの時差調整を考慮する必要はありません。
タイムゾーンとは
タイムゾーンとは、「UTC との時差(オフセット)」と「地域のルール(歴史的な変更やサマータイムなど)」を組み合わせて定義された概念です。
たとえば、以下のように定義されています。
| タイムゾーン名 | 内容 |
|---|---|
Etc/UTC | 固定的に UTC を指す |
Asia/Tokyo | 日本標準時(JST、+9) |
America/New_York | アメリカ東部時間(サマータイムにより +4 または +5) |
つまり、単に「時差」だけでなく、「どの地域の規則に従うか」を含めた情報として扱うのがタイムゾーンです。
UTCとタイムゾーンの関係
多くの OS は、内部的なシステムクロックを UTC で保持しています。その上で、ユーザーが指定したタイムゾーンに基づいてローカル時刻を表示します。
この仕組みにより、異なる地域のサーバー同士でも、UTC 基準でログや時刻を比較することができます。NTP(Network Time Protocol)による時刻同期も、この UTC を基準として行われます。
RTC(ハードウェアクロック)との違い
RTC(Real Time Clock)は、マザーボード上に搭載されている独立した時計です。OS をシャットダウンしても保持され続け、再起動時の基準となります。
Linux では RTC を UTC で運用するのが標準です。
一方で、Windows はローカルタイムを RTC に保存するため、デュアルブート環境では時刻のズレが発生する場合があります。そのため、混在環境ではどちらに合わせるかを明確にする必要があります。
よくある混乱点
- UTC と GMT の違い:GMT(Greenwich Mean Time)は地球の自転を基準とした「天文学的な平均太陽時」で、厳密には UT1 と呼ばれる時刻系に基づいています。一方、UTC(Coordinated Universal Time)は原子時計に基づいた非常に安定した時刻で、UT1 との差が ±0.9 秒を超えないよう「うるう秒」で調整されています。実務上は両者の差は 1 秒未満であり、日常的なシステム運用では同義として扱われますが、定義上は別の概念です。
- サーバーの時刻が 9 時間ずれて見える:システムは UTC で動作しており、ローカル変換の設定が行われていない場合です。
- cron が 9 時間ずれる:cron はシステムタイムゾーンを基準に動作するため、UTC のまま設定していると時刻差が発生します。
まとめ
- UTC は世界共通の基準時刻です。
- JST は UTC+9 の日本標準時であり、サマータイムは存在しません。
- タイムゾーンは「UTC との差」と「地域ルール」を定義したものです。
- Linux システムでは内部的に UTC を使用し、表示やログでローカル時刻に変換します。
タイムゾーンの正しい理解は、時刻の整合性を保つための基本です。
この基礎を押さえておくことで、サーバー設定やログ解析など、あらゆる場面で混乱を防ぐことができます。

