はじめに
案件で「時間」を扱うことがあったのですが、UTC・JST・エポック秒・Z表記 など、似たような概念が多くて混乱しました。
時間処理はエンジニアが悩みやすいテーマです。本記事では UTC や JST の違い、エポック秒、ISO8601 などを実例付きで整理しています。
① エポックタイム
-
エポックタイム(Unix time) は
「1970年1月1日 00:00:00 UTC」からの経過秒数を表す数値のこと- 例:
0 → 1970-01-01T00:00:00Z
1761955200 → 2025-11-01T00:00:00Z
- 例:
現在時刻の取得
| 言語 | 単位 | 例 |
|---|---|---|
| JavaScript | ミリ秒 | Date.now() |
| Java | ミリ秒 | Instant.now().toEpochMilli() |
② UTC
- UTC (Coordinated Universal Time) は世界共通の基準時刻
- GMT(Greenwich Mean Time)とはほぼ同じ。昔に使用されていた。UTCは原子時計ベース
- タイムゾーン補正のない「絶対的な時間」を表す
UTCとJSTとの関係
日本標準時(JST)は UTC+9時間。
③ Z表記とISO 8601形式
ISO 8601とは
時間表現の国際標準フォーマットです。
例:2025-11-06T12:00:00Z
-
T:日付と時刻の区切り -
Z:Zulu(UTC+0)を意味する - タイムゾーン付きの例:
2025-11-06T21:00:00+09:00
④ Java/JavaScriptでの扱い方まとめ
| 言語 | 現在時刻 | エポック変換 | ISO8601出力 |
|---|---|---|---|
| JavaScript | new Date() |
date.getTime() |
date.toISOString() |
| Java | Instant.now() |
instant.toEpochMilli() |
instant.toString() |