UTCとGMTの解説 — 違いは何か?
UTC(協定世界時)とGMT(グリニッジ標準時)の違い、それぞれの使い方、そしてUTCがコンピューティングの標準である理由を学びます。
Fundamentals
詳細な説明
UTC vs GMT:決定版ガイド
UTC(協定世界時)とGMT(グリニッジ標準時)はしばしば互換的に使用されますが、技術的には異なります。
グリニッジ標準時(GMT)
GMTは、ロンドンのグリニッジ王立天文台における平均太陽時に基づくタイムゾーンです。1884年の国際子午線会議で世界の時間標準として確立されました。GMTは太陽に対する地球の回転によって定義されます。
協定世界時(UTC)
UTCは、国際度量衡局(BIPM)によって維持される時間標準(タイムゾーンではない)です。国際原子時(TAI)に基づき、天文時間(UT1)との差を0.9秒以内に保つためにうるう秒が追加されます。
主な違い
| 側面 | GMT | UTC |
|---|---|---|
| 種類 | タイムゾーン | 時間標準 |
| 基準 | 地球の回転 | 原子時計 |
| 精度 | 地球の回転に依存 | 一定(うるう秒あり) |
| 公式使用 | 英国冬時間 | 国際標準 |
実用的な違い
ほとんどの実用的な目的では、UTCとGMTは同一です — どちらも夏時間調整なしの経度0度の時刻を表します。ただし:
- ソフトウェア、API、データベース、ログにはUTCを使用
- 冬季のUKタイムゾーンを指す場合のみGMTを使用(IANAデータベースでは
Europe/London)
プログラミングにおけるUTC
// JavaScript — 保存と計算には常にUTCを使用
const now = new Date();
console.log(now.toISOString()); // "2024-03-15T14:30:00.000Z"
console.log(now.getTime()); // 1710513000000(エポックからのms)
// ISO 8601の"Z"は"Zulu time"を表し、UTCに等しい
エポックがUTCに基づく理由
Unixエポック(1970年1月1日 00:00:00)はUTCで定義されています。つまり、JavaScriptのDate.now()は、ユーザーのローカルタイムゾーンに関係なく、常にUTCエポックからのミリ秒を返します。
ユースケース
UTCとGMTの区別を理解することは、タイムスタンプを保存、送信、または表示するシステムを設計する際に重要です。データベースはタイムスタンプをUTCで保存すべきです。APIはUTCを受け入れて返すべきです。ユーザーインターフェースは表示用にUTCからユーザーのローカルタイムゾーンに変換すべきです。ログシステムは異なるタイムゾーンの分散サービス間で一貫した順序を確保するためにUTCを使用すべきです。