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年以降も変換できます。
このツールでの変換手順
ここまでの確認を一画面で行えます。
- タイムスタンプ→日時:単位(秒・ミリ秒)を選んで数値を入れると、ローカル・UTC・ISO 8601に加え「現在からの相対(〜前/〜後)」が同時に出て、単位ずれもTZずれも一目で見抜けます。
- 日時→タイムスタンプ:日時を入れると秒とミリ秒を同時に取得できます。
- 現在時刻ボタン:今この瞬間の値を、選択中の単位ですばやく入力できます。
結果はコピーボタンでまとめて取得可能です。ログ調査や開発の手元の道具としてご活用ください。