UNIX時間(エポック秒)⇄ 日時 変換

UNIXタイムスタンプ(エポック秒/ミリ秒)と日時を相互変換。現在のエポック秒を1秒ごとにリアルタイム表示し、桁数から秒/ミリ秒を自動判定してJST・UTC・ISO 8601で表示します。2038年問題や負の値の扱いも解説します。

現在のエポック秒
0
現在のエポックミリ秒
0

JST(日本時間)
UTC
ISO 8601

エポック秒
0
エポックミリ秒
0

32bit符号付き整数のUNIX時間は 2147483647(2038-01-19 12:14:07 JST)が上限で、それを超える環境では桁あふれが起きます(2038年問題)。1970-01-01 00:00:00 UTC より前の日時はエポック秒が負の値になります。

使い方

  1. 現在時刻はページを開くと1秒ごとに自動更新されます。コピーボタンでその瞬間の値を取得できます。
  2. エポック値を入力すると、桁数から秒・ミリ秒を自動判定してJST・UTC・ISO 8601で表示します。判定がおかしい場合は「単位の判定」で秒/ミリ秒を手動指定できます。
  3. 逆に日時を入力すると、その日時をJSTとして解釈しエポック秒・ミリ秒に変換します。

仕組み・根拠

UNIX時間(POSIX time)は、協定世界時(UTC)の1970-01-01T00:00:00を起点に、閏秒を無視して1日=86400秒として数えた経過秒数です(POSIX/IEEE Std 1003.1の定義)。このツールはDate.UTCとtoISOString(ISO 8601形式、ECMA-262で規定)を使い、JSTはUTCに9時間(日本標準時、UTC+9固定)を加減算して算出しています。ブラウザのタイムゾーン設定に依存せず常に同じ結果になるよう、日時入力は「入力された値をJSTの壁時計時刻とみなす」実装にしています。

現場の落とし穴: UNIX時間は閏秒を数えないため、実際のUTCとの間にずれが生じることがあります(2024年時点で37秒)。ミリ秒精度でログの前後関係を厳密に扱うシステムでは、この閏秒非対応が原因で「同じ秒が2回来る/1秒欠ける」ような扱いになる場合がある点に注意してください。また、32bit符号付き整数でエポック秒を保持する古いシステムやファイル形式では、2038-01-19 12:14:07(JST)に最大値2147483647を超えてオーバーフローする「2038年問題」があります。逆に1970年より前の日時はエポック秒が負の値になり、対応していない実装では扱いを誤ることがあります。

よくある質問

Q. 桁数の自動判定はどういうルールですか?

A. 絶対値の桁数が12桁以上ならミリ秒、それ未満なら秒とみなしています。典型的には現在時刻付近で秒は10桁、ミリ秒は13桁になります。誤判定の可能性がある場合は「単位の判定」で手動指定してください。

Q. 負のエポック秒は何を意味しますか?

A. 1970-01-01T00:00:00 UTCより前の日時を表します。例えば-3600は1969-12-31T23:00:00 UTCです。

Q. ミリ秒未満(マイクロ秒・ナノ秒)は扱えますか?

A. このツールは秒・ミリ秒までの対応です。JavaScriptのDate自体がミリ秒精度までしか扱えないため、マイクロ秒以下の精度が必要な場合は別途計算が必要です。

関連ツール

最終更新・根拠の確認日: 2026-09-10 · カテゴリ: 日付・時間