epoch ミリ秒を日付に:13 桁のタイムスタンプと long 値を変換
epoch ミリ秒を読みやすい日付に変換するガイド。13 桁のタイムスタンプ、JavaScript の Date、Java の long 値、ミリ秒対秒、そしてなぜ誤った単位が 1970 年や遠い未来の日付を生むのかを扱います。
epoch ミリ秒とは
epoch ミリ秒は、1970 年 1 月 1 日 00:00:00 UTC からのミリ秒を数えます。Unix 秒と同じ Unix エポックを使いますが、精度が 3 桁多くなります。現代の epoch ミリ秒の値は通常 13 桁で、1700000000000 のようになります。
ミリ秒を日付に変換する方法
値がすでにミリ秒なら、JavaScript Date はそのまま読めます。受け取るツールが秒を期待する場合は、まず 1000 で割ります。主なミスは、間違った境界で掛けたり割ったりすることです。
- JavaScript: new Date(1700000000000).toISOString()
- Milliseconds to seconds: Math.floor(1700000000000 / 1000)
- Seconds to milliseconds: 1700000000 * 1000
- Java Instant: Instant.ofEpochMilli(1700000000000L)
- Python: datetime.fromtimestamp(ms / 1000, tz=timezone.utc)
Java やデータベースでの long から日付
「long から日付」の検索は、タイムスタンプを 64 ビット整数で保存する Java・Kotlin・Android・データベースのエクスポートから来ることが多いです。値は epoch ミリ秒のこともありますが、秒・マイクロ秒・ナノ秒のこともあります。変換前に桁数を確認してください。
- 10 桁:おそらく Unix 秒
- 13 桁:おそらく Unix ミリ秒または Java の long ミリ秒
- 16 桁:おそらくマイクロ秒
- 19 桁:おそらくナノ秒
- 列には常に単位を付けて名前を付ける(例:created_at_ms)
なぜミリ秒が奇妙な日付になるのか
ミリ秒の値を秒として扱うと、極端に遠い未来の日付になります。秒の値をミリ秒として扱うと、1970 年 1 月付近の日付になります。桁数が最も速い診断です。
- 1700000000000 をミリ秒として = 2023-11-14 22:13:20 UTC
- 1700000000000 を秒として = ライブラリにより西暦 55840 年あたり
- 1700000000 を秒として = 2023-11-14 22:13:20 UTC
- 1700000000 をミリ秒として = 1970-01-20 16:13:20 UTC
epoch ミリ秒 FAQ
- ミリ秒の epoch 時間は Unix タイムスタンプと同じ?
- 同じエポックを使いますが、単位が秒ではなくミリ秒です。古典的な Unix タイムスタンプは通常、秒を意味します。
- epoch ミリ秒のタイムスタンプは何桁?
- 現在の日付では、epoch ミリ秒は通常 13 桁です。
- JavaScript はミリ秒それとも秒?
- JavaScript Date はミリ秒を使います。Date.now() は epoch ミリ秒を返します。
- Java の long タイムスタンプを日付に変換するには?
- long が epoch ミリ秒なら Instant.ofEpochMilli(value)、epoch 秒なら Instant.ofEpochSecond(value) を使います。まず桁数を確認してください:13 桁はミリ秒、10 桁は秒が普通です。
More posts
UTC 時刻とは?意味・オフセット・変換を解説Unix 時間を日付に:Unix タイムスタンプを読みやすい時刻に変換エポック タイムスタンプを解説:Unix 時間、POSIX 時間、1970 年以降の秒epoch コンバーター ガイド:エポック時間・Unix 時間・タイムスタンプを変換日付を epoch に:時刻を Unix タイムスタンプまたはエポック時間に変換現在の Unix タイムスタンプ:エポック時計、UTC 時刻、ライブの Unix 時間2026 年初の Unix タイムスタンプ:1767225600 を解説JavaScript Date.now():Unix タイムスタンプの取得と変換ミリ秒 vs 秒:あらゆるアプリを壊す単位の混同データベースでのタイムスタンプ保存:DATETIME vs INT vs BIGINTライブラリなしで JavaScript のタイムゾーン正確な日付整形あらゆる開発者が出荷したことのある 7 つの Unix タイムスタンプ バグエポック時間を解説:Unix タイムスタンプ ゼロとは?