ISO 8601 とは?
ISO 8601 は、日付と時刻を「曖昧さのないテキスト」として記述する方法を定めた国際標準です。API が受け付けるべき形式、データベース列に保存すべき形式、ログが出力すべき形式——それ以外を選ぶと、最初の国際電話で YYYY-MM-DD と MM/DD/YYYY の混乱が起きます。
例:
2026-08-27T14:35:00+09:00
4 つの部分に分解:
| 部分 | 意味 |
|---|---|
2026-08-27 |
拡張形式の日付(年-月-日)。 |
T |
日付と時刻を区切るリテラル。 |
14:35:00 |
24 時間表記の時刻(時-分-秒)。 |
+09:00 |
UTC からのオフセット。 |
なぜこの形式がシステム層で最強か
テキストとしてソート可能。辞書順と時系列順が一致します。2026-08-27 は 2026-08-28 の前、2026-08-27T14:00:00Z は 2026-08-27T14:35:00Z の前。ログバッファをテキストで書き出しても、解析なしで検索・ソートできます。
文化を超えて曖昧さがない。01/02/2026 は米国では 1 月 2 日、他のほぼすべての国では 2 月 1 日。2026-01-02 はどこでも 1 月 2 日。
広くサポートされる。主要言語の日付ライブラリはすべて解析可能で、ほとんどがデフォルトでシリアライズします。すべての SQL DB が理解します。すべての現代ファイル形式がタイムスタンプに使います。
実務で見るバリエーション
毎回フルで書く必要はありません。標準はいくつかの短縮形を認めています:
2026— 年のみ2026-08— 年月2026-08-27— 日のみ2026-08-27T14:35— 分精度の日時2026-08-27T14:35:00— 秒精度の日時2026-08-27T14:35:00.123— ミリ秒付き2026-08-27T14:35:00Z— UTC 略記(Zは+00:00と同義)2026-08-27T14:35:00+09:00— オフセット明示
Z 形式(俗称「Zulu 時間」)は、UTC を :00 付きで書きたくない大半のシステムのデフォルト出力です。
よくある落とし穴
- 夏時間。ISO 8601 が保存するのはオフセットであり、タイムゾーンではありません。
2026-08-27T14:35:00+09:00は、管轄地域で夏時間が終わる瞬間に曖昧になります。「毎日この壁時計の時刻で」という意味なら、オフセットではなくタイムゾーン識別子(Asia/Tokyo)を保存してください。 - 閏秒。ISO 8601 は閏秒をエンコードしません。一般民生系は通常これを無視します。
- 負の年。ISO 8601 は過去へ拡張し、
-0001は紀元前 2 年、0000は紀元前 1 年。天文学は別の規約を使います。 - オフセットなしはローカル時刻。裸の
2026-08-27は暦日であり、時刻を持ちません。ここに時刻を足してもオフセットがなければ未定義です。
ツール
エポックタイムスタンプを ISO 8601 文字列へ(またはその逆へ)変換するなら Epoch to DateTime — ブラウザ内実行、アップロード不要。
サイト全体の時間とスケジューリングをまとめたハブは Time and Cron hub。
関連
- cron 式 — ISO 8601 の時間側の対になる存在
- JSON to CSV — タイムスタンプが JSON エクスポートに埋まっているケース
- UTC vs GMT vs EST — 実務的なオフセット換算