シルギア

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

公開日:2026年7月25日 対象ツール:Unixタイムスタンプ変換

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

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

Unixタイムスタンプ(エポック秒、Unix time)は、1970年1月1日0時0分0秒(UTC)を0地点とし、そこから何秒経ったかという1本の整数だけで時刻を表す方式です。年・月・日・時・分・秒に分けず、地域も暦も持ち込まない「経過秒数」に振り切っているのが要点です。この単純さのおかげで、比較(大小=前後)も差分(引き算=経過時間)も四則演算で済み、どの国のサーバーでも同じ値になります。人間には読みにくい代わりに、機械には極めて扱いやすい表現なのです。

どこで使われているか

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

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

いずれも「地域差なく1つの数字で表せる」利点を活かした使い方です。

秒とミリ秒の違い(最頻出のミス)

最もハマりやすいのが単位の取り違えです。多くの言語で秒が基本ですが、JavaScriptの Date.now() などはミリ秒(1秒=1000ミリ秒)を返します。秒は10桁、ミリ秒は13桁が現在の目安で、秒を1000倍すればミリ秒になります(例:1700000000 → 1700000000000)。見分け方はシンプルで、桁数を数えるだけ。13桁の値を秒として渡すと約1000倍先の遠い未来になり、逆に10桁をミリ秒扱いすると1970年直後に張り付きます。「日時が桁違いにずれた」ときは、まず単位を疑ってください。

タイムゾーンとUTC/ローカル

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

2038年問題とうるう秒

秒を 32ビット符号付き整数で持つ古いシステムでは、2038年1月19日3:14:07 UTCで上限に達し、次の秒で負にあふれて時刻が壊れます。これが2038年問題です。対策は64ビット化で、現代の環境なら実害は基本的にありませんが、レガシーなDBカラムや組み込み機器では今も注意が要ります。また、実際の1日は微妙に長さが揺れるため天文学的には「うるう秒」が挿入されますが、Unixタイムスタンプはうるう秒を数えず1日を常に86400秒として扱うのが慣例です。秒単位の厳密性が要る領域を除けば、通常はこの前提で問題ありません。

ありがちな失敗例

  • ミリ秒の値を秒のAPIに渡し、有効期限が数万年先になって検証が素通りする。
  • UTCで保存した値をローカルとして表示し、9時間ずれたまま気づかない。
  • 秒とミリ秒が混在したログを差分計算し、経過時間が1000倍でおかしくなる。

いずれも「単位」と「基準(UTCかローカルか)」の2点を確認すれば防げます。

このツールでの変換方法

本ツールは上記の確認を一画面で行えます。「タイムスタンプ→日時」で単位(秒・ミリ秒)を選んで数値を入れると、ローカル・UTC・ISO 8601の3通りが同時に出るので、単位ずれもTZずれも一目で見抜けます。逆に「日時→タイムスタンプ」なら秒とミリ秒の両方を同時に取得でき、「現在時刻」ボタンで今の値もすぐ入ります。負の値(1970年以前)や2038年以降も計算できます。ログ調査や開発の手元の道具としてご活用ください。

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

ほかの記事

URLスラッグの付け方ガイド|良いURLの条件・日本語の扱い・変更時の注意 文字コード変換ツールの使い方|文字とUnicode・UTF-8・実体参照を相互変換 最大公約数(GCD)と最小公倍数(LCM)の求め方と計算ツールの使い方 抽選・順番決めツールの使い方|くじ引き・シャッフル・サイコロ・コイントスを公平に 「◯日後・◯日前」の日付計算のやり方|100日後や納期の逆算も曜日つきで一発 退職金の税金はいくら?勤続年数から手取りを自動計算する方法

記事一覧をすべて見る →