Unix タイムスタンプ変換ツール
このツールについて
使い方
- 「タイムスタンプ → 日時」: Unix タイムスタンプを入力すると、JST・UTC・ISO 8601 形式に変換します
- 「日時 → タイムスタンプ」: 日時を選択すると、秒・ミリ秒のタイムスタンプに変換します
Unix タイムスタンプとは
1970年1月1日 00:00:00 UTC からの経過秒数で時刻を表す方式です。多くのプログラミング言語やデータベースで広く使われています。
秒 (10桁) とミリ秒 (13桁) の2種類があり、このツールでは桁数から自動判定します。
タイムスタンプ → 日時
日時 → タイムスタンプ
なぜ 1970 年 1 月 1 日が起点なのか
Unix タイムスタンプの起点 (エポック) は 1970 年 1 月 1 日 00:00:00 UTC です。 この日付が選ばれた理由は、Unix オペレーティングシステムの開発が 1960 年代後半に始まり、 初期のバージョンが 1970 年前後に完成したことに由来します。 当時のシステムでは 32 ビット整数でタイムスタンプを扱っていたため、 なるべく近い日付を起点にすることでメモリを効率的に使えるようにしました。
2038 年問題
32 ビット符号付き整数の最大値は 2,147,483,647 です。 これは 1970 年 1 月 1 日から数えて 2038 年 1 月 19 日 03:14:07 UTC に到達します。 この時点を超えると整数がオーバーフローし、 日時が 1901 年 12 月 13 日に巻き戻ってしまう問題が「2038 年問題」(Y2K38) です。
現在の多くのシステムでは 64 ビット整数を使うことでこの問題を回避しています。 64 ビットなら約 2920 億年後まで表現でき、事実上の制限はなくなります。
秒とミリ秒の使い分け
一般的な Unix タイムスタンプは「秒」単位 (10 桁) ですが、 JavaScript (Date.now()) や Java (System.currentTimeMillis()) では 「ミリ秒」単位 (13 桁) が標準です。 API やデータベースから取得したタイムスタンプがどちらの単位かは桁数で判別できます。
- RFC 3339 - Date and Time on the Internet: Timestamps
インターネットで使われる日時表現 (ISO 8601 のサブセット) の公式仕様
- Date - JavaScript MDN
JavaScript の Date オブジェクトリファレンス (ミリ秒タイムスタンプ)
- 2038年問題 - Wikipedia
32ビット符号付き整数のオーバーフローによる時刻問題の詳細
- Unix time - Wikipedia
Unix タイムスタンプ (エポック秒) の歴史と仕様
このツールの更新履歴
Unix タイムスタンプ変換ツールを公開
Unix タイムスタンプと日時の相互変換、JST/UTC/ISO 8601 形式表示に対応します。