シルギア

Unixタイムスタンプとは|秒とミリ秒の違い・2038年問題・日時変換の実務ガイド

公開日:2026年7月25日 更新日:2026年9月2日 運営:シルギア(Analyzegear, Inc.) 対象ツール:Unixタイムスタンプ変換

ログやAPIのレスポンスで 1700000000 のような数字を見て、これが時刻だと言われても直感的にはピンと来ません。この記事では単なる操作説明ではなく、「なぜこの数字が時刻になるのか」という仕組みから、秒とミリ秒・UTCとローカルの取り違えといった現場の落とし穴までを、具体的な数値で検算しながら整理します。手を動かしたくなったら本ツールで実際に変換しながら読んでください。

Unixタイムスタンプという発想

Unixタイムスタンプ(エポック秒、Unix time)は、1970年1月1日0時0分0秒(UTC)を0地点とし、そこから何秒経ったかという1本の整数だけで時刻を表す方式です。この基準時刻を「エポック」と呼びます。年・月・日・時・分・秒に分けず、地域も暦も持ち込まない「経過秒数」に振り切っているのが要点です。

単純さの利点は計算に現れます。1日は必ず 86400秒(=24×60×60)なので、値 0 はエポック当日、86400 はちょうど翌日の1970年1月2日0:00 UTCです。比較(大小=前後)も差分(引き算=経過時間)も四則演算で済み、どの国のサーバーでも同じ値になります。人間には読みにくい代わりに、機械には極めて扱いやすい表現です。

どこで使われているか

この形式は身の回りのあらゆる場所に潜んでいます。

  • サーバーログ:アクセスログやエラーログの記録時刻。
  • データベース:作成日時・更新日時をINT型で保持する設計。
  • API:トークンの有効期限(exp)やイベント発生時刻の受け渡し。
  • ファイル:更新日時(mtime)などファイルシステム上のタイムスタンプ。

いずれも「地域差なく1つの数字で表せる」利点を活かした使い方です。区切りの良い 1000000000 は2001年9月9日1:46:40 UTCに当たり、当時は記念すべき瞬間として話題になりました。

秒とミリ秒を桁で見分ける

最もハマりやすいのが単位の取り違えです。多くの言語で秒が基本ですが、JavaScriptの Date.now() などはミリ秒(1秒=1000ミリ秒)を返します。見分け方はシンプルで、秒は10桁、ミリ秒は13桁が現在の目安。秒を1000倍すればミリ秒で、たとえば 1700000000 は末尾に000が付いて 1700000000000 になります。

桁を無視すると桁違いにずれます。13桁の 1700000000000 を秒として解釈すると西暦五万年台の遠い未来になり、逆に10桁をミリ秒扱いすると1970年1月20日ごろに張り付きます。「日時が桁違いにおかしい」ときは、まず単位を疑ってください。本ツールの単位ボタン(秒/ミリ秒)は、内部でこの1000倍の扱いを切り替えています。

UTCとローカル(JST)のずれ

タイムスタンプ自体はUTC基準の絶対時刻で、タイムゾーン情報を持ちません。ずれが生まれるのは、それを人間向けに表示する段階です。同じ 1700000000 でも、UTCでは 2023年11月14日22:13:20、日本のローカル時刻(JST=UTC+9)では9時間進んで 翌15日7:13:20 と表記が変わります。数値は同じ一瞬を指しているのに表示だけが違う、という関係を押さえておくと混乱しません。

逆変換でも同じ注意が要ります。本ツールの「日時→タイムスタンプ」は入力欄をローカル時刻として解釈するため、日本で「2024年1月1日0:00」と入れた場合の秒は 1704034800(=UTCでは前日15:00)になります。ISO 8601のZ付き表記(例:2023-11-14T22:13:20.000Z、末尾のZはUTCの意味)も、この絶対時刻を明示する書き方です。

2038年問題・うるう秒・負の値

秒を 32ビット符号付き整数で持つ古いシステムでは、上限の 2147483647(=2の31乗−1)に達する2038年1月19日3:14:07 UTCの次の秒で負にあふれ、時刻が壊れます。これが2038年問題です。対策は64ビット化で、現代の環境なら実害は基本ありませんが、レガシーなDBカラムや組み込み機器では今も注意が要ります。

また、実際の1日は長さがわずかに揺れるため天文学的には「うるう秒」が挿入されますが、Unixタイムスタンプはうるう秒を数えず1日を常に86400秒として扱うのが慣例です。負の値も扱え、-86400 は1日前の1969年12月31日0:00 UTCを指します。本ツールはこれらをJavaScriptの数値で計算するため、1970年以前も2038年以降も変換できます。

このツールでの変換手順

ここまでの確認を一画面で行えます。

  1. タイムスタンプ→日時:単位(秒・ミリ秒)を選んで数値を入れると、ローカル・UTC・ISO 8601に加え「現在からの相対(〜前/〜後)」が同時に出て、単位ずれもTZずれも一目で見抜けます。
  2. 日時→タイムスタンプ:日時を入れると秒とミリ秒を同時に取得できます。
  3. 現在時刻ボタン:今この瞬間の値を、選択中の単位ですばやく入力できます。

結果はコピーボタンでまとめて取得可能です。ログ調査や開発の手元の道具としてご活用ください。

「Unixタイムスタンプ変換」を使ってみる →

ほかの記事

ISO週番号の完全ガイド|第1週の決め方・53週の年・年またぎのズレ 月間カレンダーの作り方|週の開始曜日・祝日・六曜・A4印刷のコツ 第◯曜日の日付の使い方|毎月第2月曜・第4金曜・最終金曜の実日付をすぐ出す 長寿祝い早見の使い方|生まれた年から還暦・古希・米寿が何年か一覧でわかる 二十四節気とは?立春・春分・夏至・冬至の意味と日付の決まり方をやさしく解説 海外との会議時間の決め方|時差・UTCオフセット・サマータイムを踏まえて全員が働きやすい時刻を探す

記事一覧をすべて見る →