RevealTheme logo

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

Unixタイムスタンプと人間が読める日付を相互に変換します。リアルタイムで更新されます。

このツールの使い方

  1. 1

    Type or paste a Unix timestamp in seconds into the top field — the bottom field updates to the matching UTC date.

  2. 2

    Or type a date into the bottom field — the top field updates to the matching Unix timestamp in seconds.

  3. 3

    Click 'Now' to fill both fields with the current moment.

  4. 4

    Select and copy the value you need from either field.

Unixタイムスタンプとは何か、そしてなぜAPIはそれを使うのか?

Unixタイムスタンプ(エポック時間またはPOSIX時間とも呼ばれます)とは、1970年1月1日00:00:00 UTCからの経過秒数を表す単一の整数であり、この瞬間は「Unixエポック」として知られています。この慣習は、1970年代にベル研究所で開発された最初のUnixオペレーティングシステムにまでさかのぼります。人間が読める日付に対する利点は、単一の数値であること、タイムゾーンに依存しないこと、比較や算術演算が容易であること、そしてシステム間で曖昧さがないことです。あらゆるデータベース、ログファイル、JWT、OAuthトークン、そしてほとんどの最新のAPIは、内部的にUnixタイムスタンプを使用しています。JWTの「exp」クレームはUnixタイムスタンプであり、ほとんどのAPIの「created_at」はUnixタイムスタンプか、それから派生したISO 8601文字列であり、Linux/macOSでのファイルの更新時刻はUnixタイムスタンプとして保存されます。区別すべき一般的な変種が2つあります。秒(JWT、OAuth、Linuxのファイルメタデータで使われる、本来のUnixの慣習)とミリ秒(JavaScriptのDate.now()、JavaのSystem.currentTimeMillis()、そして多くの最新のAPIで使われます)です。10桁のタイムスタンプは秒単位で、13桁のタイムスタンプはミリ秒単位です。このツールは両方に対応しています。どちらのフィールドにどちらの形式を貼り付けても、自動的に検出して変換します。もう一つ知っておくとよい概念があります。ISO 8601は標準的な人間が読める形式(2025-12-31T23:59:59Z)で、厳密にアルファベット順に並び、どこでも解析可能です。タイムスタンプをUnixの整数として保存するか、ISO 8601文字列として保存するかを選べる場合、パフォーマンスを重視するならUnixを、可読性を重視するならISO 8601を選んでください。

よくある活用例

  • JWTペイロードの「exp」や「iat」クレームをデコードして、いつ期限切れになるかを確認する。

  • API応答のタイムスタンプをローカルのタイムゾーンに変換してデバッグする。

  • Cookieの有効期限ヘッダーを設定するためのタイムスタンプを生成する。

  • データベースのタイムスタンプ(エポック秒)をISO 8601に変換して、ログを解析する。

  • 2つのイベントのUnixタイムスタンプを引き算して、経過時間を計算する。

  • 明示的なUnixタイムスタンプを使い、atコマンドでcronジョブをスケジュールする。

よくある質問

なぜ1970年なのですか?
これはベル研究所の初期のUnixシステムの慣習です。この選択は任意なものでしたが、そのまま定着しました。当初それを格納していた32ビットの符号付き整数は、2038年1月19日2時14分07秒UTCにオーバーフローします。これが「2038年問題」です。最新のシステムは64ビット整数を使用しており、オーバーフローは西暦292,277,026,596年まで先送りされます。
秒ですか、それともミリ秒ですか?
Unixタイムスタンプは秒単位です(2025年では10桁の数値)。JavaScriptのDate.now()とJavaのSystem.currentTimeMillis()はミリ秒(13桁)を使用します。呼び出すAPIがどちらを期待しているか、必ず確認してください。1000という係数の付け忘れや付けすぎは、本番環境におけるタイムスタンプの不具合の第一の原因です。
このタイムスタンプを自分のタイムゾーンで見るにはどうすればよいですか?
Unixタイムスタンプはタイムゾーンに依存しません。どこでも同じ瞬間を表します。ローカルのタイムゾーンで表示するには、適切なタイムゾーンを指定して、お使いの言語の日付フォーマッターにタイムスタンプを渡してください。JavaScriptの場合は、new Date(ts*1000).toLocaleString('ja-JP', { timeZone: 'America/New_York' })のようにします。
Unix時間とUTCの違いは何ですか?
Unix時間は単一の数値です。UTCは、年、月、日、時、分、秒を含む表現です。Unixタイムスタンプは慣習として常にUTCです。「EST表記のUnix時間」というものは存在しません。表示は任意のタイムゾーンで行えますが、その基となる数値は普遍的です。
うるう秒はどのように扱われますか?
Unix時間はうるう秒を無視します。すべての日がちょうど86,400秒であるかのように扱います。これは、うるう秒の挿入時にUnix時間が一時的に巻き戻ったり、停止したりすることがあることを意味します。ほとんどのアプリケーションではこれは見えません。高精度なシステム(GPS、金融取引)では、TAI(国際原子時)を使用してください。
Unixタイムスタンプは負の値になり得ますか?
はい。1970年より前の日付を表します。負のタイムスタンプはほとんどの言語で機能しますが、一部のレガシーシステムはそれを拒否します。
ISO 8601タイムスタンプとは何ですか?
ISO 8601は、人間が読める日付/時刻形式の国際標準です。YYYY-MM-DDTHH:MM:SSZ(Z = UTC、またはその他のオフセットには+HH:MM)。例:2025-12-31T23:59:59Z。ISO 8601文字列はアルファベット順に並べると時系列順になるため、ログファイルやデータベースのクエリに最適です。

関連ツール