Menu
日本語

Unixタイムスタンプ変換

Unixタイムスタンプ、ISO 8601、UTC、ローカル時刻を相互変換。

最終更新

単位
現在
入力有効なタイムスタンプ
出力値をクリックでコピー
  • Unix (秒)1777240170
  • Unix (ミリ秒)1777240170000
  • ISO 8601 (UTC)2026-04-26T21:49:30.000Z
  • ローカル2026-04-26 21:49:30
  • UTCSun, 26 Apr 2026 21:49:30 GMT
  • 相対

Unixタイムスタンプ変換ツールとは?

Unixタイムスタンプ変換ツールは、ある瞬間を表す1つの数値「*エポック秒*」を人間が読める日付に変換し、また日付からタイムスタンプへ戻すツールです。タイムスタンプは開発の至るところに登場します。DBのカラム、ログの行、APIレスポンス、アナリティクスのイベント、JWTのexpクレーム、スケジューラのトリガー、キャッシュ有効期限のヘッダーなど、挙げればキリがありません。

仕組みはシンプルで、コンピュータは時刻を「1970-01-01 00:00:00 UTCからの経過秒数(またはミリ秒)」という数値で扱います。一方、人間にはカレンダーやタイムゾーン、読みやすい書式が必要です。両者を行き来する変換は、Webやモバイルアプリのデバッグで最も頻繁に出てくる作業のひとつです。

一番ややこしいのは*単位*です。POSIXや多くのバックエンド言語は秒を使い、JavaScript・Java・多くのメッセージブローカーはミリ秒を使います。メトリクス系ではマイクロ秒やナノ秒もあります。目安として、10桁の数値はほぼ秒、13桁の数値はほぼミリ秒です。

タイムスタンプを変換しながら学べること

  • Unixタイムスタンプは、Unixエポック(1970-01-01 00:00:00 UTC)からの経過時間を*秒*または*ミリ秒*で表したもの。
  • UTCは固定の基準時刻。ローカルタイムはユーザーのタイムゾーン、サマータイム(DST)のルール、端末の時計設定に依存する。
  • ISO 8601(2026-04-25T12:00:00Z)は移植性の高いテキスト形式。末尾のZ(または+00:00)はUTC、+02:00のようなオフセットはUTCより2時間進んだローカルタイムを意味する。

Unixタイムスタンプ変換の手順

  1. 値を貼り付ける

    数値(秒またはミリ秒)か日付文字列を貼り付けます。桁数や形から書式を自動判定します。

  2. 単位を確認する

    自動判定が外れた場合は、秒とミリ秒のトグルで切り替えます。10桁なら秒、13桁ならミリ秒が目安です。

  3. 両方の表示を確認する

    出力にはUTCのISO 8601、ローカルタイム、相対時間(3 hours agoin 2 days)が並んで表示されます。

  4. 必要な値をコピーする

    タイムスタンプ・ISO文字列・ローカルタイムをそのままコピーできます。JWTのexp、DBのレコード、ログ検索のクエリに貼り付けるのに便利です。

タイムスタンプ書式 早見表

コードで日付・時刻を扱うときによく見かける書式をまとめました。ISO 8601はIETFのRFC 3339としてプロトコル向けにプロファイル化もされています。

書式よく見る場所
Unix秒1777118400バックエンドのログ、JWTのexp、POSIXのtime()、Redis
Unixミリ秒1777118400000JavaScriptのDate.now()、JavaのSystem.currentTimeMillis()
ISO 8601 UTC2026-04-25T12:00:00ZREST API、JSON、GraphQL、ログファイル
オフセット付きISO 86012026-04-25T14:00:00+02:00ユーザー向けの予約・予定、カレンダー招待
RFC 2822Sat, 25 Apr 2026 12:00:00 GMTメールヘッダー、HTTPのDateLast-Modified
日付のみ2026-04-25誕生日や祝日など。タイムゾーンの意味は持たない

試してみたいタイムスタンプの例

秒とミリ秒の違い

秒(10桁)

1777118400

ミリ秒(13桁)

1777118400000

上の値を秒、下の値をミリ秒として解釈すれば、どちらも同じ瞬間を表します。この単位の取り違えはタイムスタンプ周りで一番よくあるバグです。

APIから返ってきたタイムスタンプを読む

レスポンス
{  "id": 42,  "createdAt": 1777118400,  "expiresAt": 1777204800}

過去か未来かを判断する前に、まずそれぞれの値を変換してみましょう。多くのJSON APIはUnix秒ですが、ドキュメントの確認は必須です。JavaScript色の強いバックエンドではミリ秒で返ってくることもよくあります。

UTCとローカルタイムを見比べる

UTC

2026-04-25T12:00:00Z

同じ瞬間を+02:00で表記

2026-04-25T14:00:00+02:00

この2つの文字列は*まったく同じ瞬間*を表します。保存するときは常にUTC、表示するときだけローカルタイムに整形するのが基本です。

タイムスタンプ周りでありがちな失敗

  • 秒とミリ秒の取り違え。1000倍の差で日付が何十年もずれます。たとえば1700000000を秒として読むと2023年11月ですが、ミリ秒として読むと1970年1月になります。
  • タイムゾーンを付けずに日付文字列を保存する。システムごとに解釈が変わり、UTCとみなすものもあれば、サーバーのローカルタイムとみなすものもあります。
  • 整形済みの日付文字列('2026-04-25'など)同士を比較する。同じ瞬間を表すISO文字列でも書式が違うことがあるので、比較はタイムスタンプで行うべき。

Unixタイムスタンプに関するFAQ

Unixタイムスタンプとは何ですか?
Unixタイムスタンプ(エポック秒とも呼ばれます)は、1970-01-01 00:00:00 UTCからの経過秒数(またはミリ秒数)のことです。タイムゾーンに依存せず、特定の瞬間をたった1つの数値で表せます。
なぜ10桁のものと13桁のものがあるのですか?
10桁のUnixタイムスタンプは秒単位、13桁のものはミリ秒単位です。JavaScriptのDate.now()はミリ秒を返しますが、多くのバックエンドは秒を返します。
UTCとは何ですか?
UTCは協定世界時(Coordinated Universal Time)の略で、世界共通の基準時刻です。サマータイムの影響を受けません。DB・API・ログでは基本的にUTCで時刻を保存するのが望ましいです。
JavaScriptはなぜミリ秒を使うのですか?
JavaScriptのDateオブジェクトは、Unixエポックからのミリ秒数でタイムスタンプを保持します。Date.now()new Date().getTime()が返す値もこれです。秒より高精度になる反面、他言語と連携するときに「1000倍ズレる」バグの温床にもなりがちです。
Unixタイムスタンプを日付に変換するには?
JavaScriptなら(秒の場合は)1000倍してからnew Date(...)に渡します。Pythonならdatetime.fromtimestamp(...)を使えばOKです。あるいは、このUnixタイムスタンプ変換ツールに貼り付ければワンクリックで結果が出ます。
Unixタイムスタンプはあふれませんか?
符号付き32ビットのUnixタイムスタンプは2038-01-19にオーバーフローします。いわゆる「2038年問題」です。最近の言語やDBはタイムスタンプを64ビット整数で保持しているので、安全に扱える範囲は数千億年単位に広がっています。

詳しく見る

その他の開発者ツール

Coddyでコードを学ぼう

始める