Unix時間を読むときは、入力元が秒(s)とミリ秒(ms)のどちらを返すかを先に確認します。 APIの値やログを照合したい人は、UTCの結果を基準にすると、端末の表示設定が違っても同じ瞬間を比べられます。

例えば 1700000000 秒は 2023年11月14日22:13:20 UTC。日本時間では翌日の 11月15日07:13:20 JST です。日時を変換したときの日付の繰り上がりも確認してください。

Unix時間の10桁・13桁は何が違う?

ECMAScriptのDateはエポックからのミリ秒を扱います。Pythonのtime.time()は小数を含む秒を返し、JavaのInstantは秒とミリ秒で別の変換メソッドを使います。値が渡ってきたフィールドや関数の仕様で単位を確認します。

入力元・表記 単位 値の例
JavaScript Date.now() ms 1700000000123
Python time.time() s(小数あり) 1700000000.123
Java Instant.ofEpochMilli() の引数 ms 1700000000123
2000年1月1日00:00 UTC ms(12桁) 946684800000

同じ瞬間の秒値をミリ秒に直すには1000倍します。1700000000.123 秒は 1700000000123 ミリ秒です。1970年より前は負になり、例えば −1 msは1969年12月31日23:59:59.999 UTC です。通常のUnix時刻では、うるう秒を独立した1秒として数えません。

1700000000.123秒に1000を掛けると1700000000123ミリ秒。UTCで2023年11月14日22時13分20.123秒。
編集部作成。秒・ミリ秒の単位をそろえてからUTCを読む手順です。 図を拡大

変換すると1970年になるときの診断表

症状 確認する条件 対処
2023年のはずが1970年 秒値をmsとして解釈 入力単位を秒にする
2000年のログが大幅に未来になる 12桁のmsを自動が秒と推定 ミリ秒を指定
時刻は合うが末尾123が消える 秒の整数値だけを比較している ms欄とUTCの小数秒を照合

自動推定の境界は絶対値1兆です。 1兆未満のミリ秒値や、1兆以上の秒値を扱う場合は単位を明示します。ツールは秒入力を最も近いミリ秒に丸め、ミリ秒入力の小数部はゼロ方向に切り捨てます。結果の「秒」は負数も含めて負の無限大方向に丸めた整数です。小数秒の情報を残したいときはミリ秒の値を使います。

この記事の例を試す

2000年の12桁の値を確認

946684800000を入力し、単位をミリ秒に指定します。UTCが2000年1月1日00:00:00になることを確認できます。

ミリ秒を指定して変換

UTC・JST・夏時間のある都市での表示

表示先 オフセット 1700000000秒の表示
UTC +00:00 2023-11-14 22:13:20
Asia/Tokyo +09:00 2023-11-15 07:13:20
America/New_York −05:00(この日) 2023-11-14 17:13:20

「ローカル時刻」は閲覧端末の設定に従います。UTC表記の Z とJSTの +09:00 で同じ瞬間を異なる時刻として表示できます。夏時間がある都市では季節でオフセットが変わるため、都市別の比較には時差のガイドを参照してください。

日時から逆変換してログを照合する

  1. 「日時 → Timestamp」へ切り替え、入力欄の下に表示される端末のタイムゾーンを確かめます。
  2. Asia/Tokyo なら 2023年11月15日07:13、UTC なら 2023年11月14日22:13 を入力します。秒欄がないブラウザでも比較できるよう、例では秒を00にそろえます。
  3. 秒値 1699999980 とミリ秒値 1699999980000 を照合します。元の 1700000000 秒との差20秒は、逆変換の入力を分単位にしたためです。

夏時間の終了時には同じ現地時刻が2回現れます。日時欄にはオフセットを入力できないため、ログのUTC値またはオフセット付き時刻で区別します。

この記事の例を試す

日時を元の秒値へ戻す

端末のタイムゾーンに合わせて例の日時を入力し、秒値とミリ秒値を元データと比べます。

日時から逆変換

2038年問題と日時の保存形式

符号付き32ビット整数の最大値は 2147483647。秒で保存すると 2038年1月19日03:14:07 UTC が上限です。次の1秒を扱う場合は、APIの型・DB列・データを読むプログラムで表現範囲を確認します。ブラウザで変換できる範囲と保存先の範囲は個別に確認します。

UUID v7の時刻部分にはUnixミリ秒が使われます。ログ値が16進数なら進数変換のガイドで整数を先に読んでから時刻へ直せます。開発ツール一覧から3つのツールへ移動できます。

編集部の確認範囲

2026年11月9日に、公式仕様・例題・ツールの単位切替を照合しました。日時は記載したタイムゾーンを条件に再計算した例です。実際のAPIやDBではフィールドの単位と保存範囲を確認してください。

よくある質問

10桁なら秒、13桁ならミリ秒ですか?

現在に近い正の値では目安になります。2000年1月1日00:00:00 UTCは946684800000ミリ秒で12桁です。入力元の仕様で単位を確認してください。

変換結果が1970年になるのはなぜですか?

現在に近い秒値をミリ秒として読むと、エポック直後になります。例えば1700000000をミリ秒とすると1970年1月20日16:13:20 UTCです。元の単位を確かめて変換し直します。

日本時間で逆変換できますか?

日時入力はブラウザのローカルタイムゾーンで解釈されます。端末がAsia/Tokyoなら日本時間です。夏時間の重複時刻は、UTCまたはオフセット付きの元データで照合してください。

2038年以降も変換できますか?

このツールのJavaScript Dateで表せる範囲なら変換できます。保存先が符号付き32ビットの秒の場合、2147483647秒が上限なので、2038年1月19日03:14:08 UTC以降を扱うには保存形式の確認が必要です。