Web便利ツール

Unix タイムスタンプ変換ツール

このツールについて

使い方

  1. 「タイムスタンプ → 日時」: Unix タイムスタンプを入力すると、JST・UTC・ISO 8601 形式に変換します
  2. 「日時 → タイムスタンプ」: 日時を選択すると、秒・ミリ秒のタイムスタンプに変換します

Unix タイムスタンプとは

1970年1月1日 00:00:00 UTC からの経過秒数で時刻を表す方式です。多くのプログラミング言語やデータベースで広く使われています。

秒 (10桁) とミリ秒 (13桁) の2種類があり、このツールでは桁数から自動判定します。

よくある質問

Q. 入力したタイムスタンプの取り扱いを教えてください
A. すべての変換処理はお使いのブラウザ内で実行され、入力値が外部に送信されることはありません。API のログや内部システムのタイムスタンプも安心して貼り付けられます。
Q. 桁数の自動判定はどのように行われていますか?
A. 10 桁以下を秒、13 桁前後をミリ秒として判定します。マイクロ秒 (16 桁) やナノ秒 (19 桁) には対応していないため、必要な場合は秒・ミリ秒に変換してから入力してください。
Q. 表示される時刻のタイムゾーンを UTC に固定できますか?
A. JST と UTC の両方を同時に表示しています。ISO 8601 形式の値はタイムゾーン情報付きで表示されるため、用途に合わせてコピーしてください。
Q. 1970 年より前の日付には対応していますか?
A. 負の値を入力すると 1970 年より前の日付になります。Unix タイムスタンプは仕様上負の整数も許容されており、過去の日付も計算可能です。
Q. うるう秒は考慮されていますか?
A. されていません。Unix タイムスタンプは POSIX の定義によりうるう秒を無視しているため、地球の正確な経過秒数とはわずかにずれが生じる場合があります。
現在のタイムスタンプ (秒)
1780590085

タイムスタンプ → 日時

日時 → タイムスタンプ

:
:

豆知識

なぜ 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 やデータベースから取得したタイムスタンプがどちらの単位かは桁数で判別できます。

参考リンク

このツールの更新履歴

  • 新ツール

    Unix タイムスタンプ変換ツールを公開

    Unix タイムスタンプと日時の相互変換、JST/UTC/ISO 8601 形式表示に対応します。