UNIX時間 変換 — タイムスタンプと日時を相互変換
UNIX時間と日時を相互変換(秒〜ナノ秒、自由形式の日付、期間の始まりと終わり、コード例)
ブラウザー内で処理・アップロード不要
現在のUNIX時間
———
タイムゾーン
以下の変換はすべてこのタイムゾーンで計算します。
タイムスタンプ → 日時
タイムスタンプを入力すると、ここに日時が表示されます。
日時 → タイムスタンプ
欄の中で上下の矢印キーを押すと1ずつ、Shiftを押しながらだと10ずつ変わります。どの欄に日付全体を貼り付けても、すべての欄が埋まります。時・分・秒を空欄にすると0になります。
日時を入力すると、秒・ミリ秒・マイクロ秒・ナノ秒のタイムスタンプがここに表示されます。
年・月・日の始まりと終わり
年・月・日の最初の瞬間と最後の1秒のタイムスタンプを求めます。夏時間の切り替えがある日は23時間または25時間になることがあります。
年(と月・日)を入力すると、始まりと終わりのタイムスタンプがここに表示されます。
秒数を年・月・日・時間・分に換算
秒数を読みやすい期間に換算します。平均値を使い、1年は365.25日(31,557,600秒)、1か月はその12分の1(2,629,800秒)として計算します。
秒数を入力すると、ここに期間が表示されます。
時間と秒数の対応表
| 期間 | 秒数 |
|---|---|
| 1分 | 60 |
| 1時間 | 3,600 |
| 1日 | 86,400 |
| 1週間 | 604,800 |
| 1か月(30日) | 2,592,000 |
| 1か月(30.4375日、平均) | 2,629,800 |
| 1年(365日) | 31,536,000 |
| 1年(365.25日、平均) | 31,557,600 |
UNIX時間はうるう秒を数えず、1日は常にちょうど86,400秒です。うるう秒の前後では同じタイムスタンプが2回現れたり、時計が止まったように見えたりします。JavaScriptのDateも同じ規則なので23:59:60は表せず、このツールでも秒に60は入力できません。
コードで現在のUNIX時間を取得
言語を選ぶと、現在時刻を秒(簡単に取れる場合はミリ秒も)で出力するコード例が表示されます。
const millis = Date.now();
const seconds = Math.floor(millis / 1000);
console.log(seconds, millis);UNIX時間 変換ツールとは
UNIXタイムスタンプ(エポック時間)は、1970-01-01 00:00:00 UTCからの経過時間を1つの数値で表したものです。ログ、データベース、APIのレスポンス、JWTのexpクレームなどでよく見かけますが、見ただけではいつのことかわかりません。このツールは、タイムスタンプを読みやすい日時に、日時をタイムスタンプに変換します。上部のカードには現在のUNIX時間が秒とミリ秒でリアルタイムに表示され、隣のカードですべての変換に使うタイムゾーンを設定できます。その下には、期間の始まりと終わり、秒数から期間への換算、時間と秒数の対応表、コード例があります。
使い方
- タイムスタンプ → 日時:タイムスタンプを貼り付けます。秒・ミリ秒・マイクロ秒・ナノ秒は自動で判定され、選択したタイムゾーンの日時、UTC、ISO 8601、RFC 2822、HTTP日付、相対時間、曜日、ISO週番号、年内の通算日が表示されます。
- 日時 → タイムスタンプ:「欄ごとに入力」で年・月・日・時・分・秒(ミリ秒は任意)をそれぞれの欄に入力します。上下の矢印キーで値を増減でき、どの欄に日付全体を貼り付けてもすべての欄が埋まります。「現在」を押すと今の時刻が入ります。24時間表記と午前・午後表記の切り替え、UTCの切り替えもあります。
- ピッカーで選びたい場合は「カレンダーと時計で選択」を、日付を文字で書きたい場合は「自由形式の日付」を選びます。自由形式は入力に合わせて解析されます。
- 年・月・日の始まりと終わり:期間と日付を選ぶと、その最初の瞬間と最後の1秒のタイムスタンプが得られます。
- 秒数 → 期間:秒数を入力すると、年・月・日・時間・分・秒に分けて表示します。結果の横にあるコピーボタンでコピーできます。
仕組み
- 単位は絶対値で判定します。1e11未満は秒、1e14未満はミリ秒、1e17未満はマイクロ秒、それ以外はナノ秒です。負の値は1970年より前を表します。
- ISO 8601は、UTC(
Z)と、選択したタイムゾーンのオフセット付き(+09:00)で表示します。マイクロ秒とナノ秒の入力では、UTCの値を小数点以下9桁まで表示します。 - RFC 2822はオフセット付きのメールヘッダーの形式、HTTP日付は
DateヘッダーやExpiresヘッダーで使われるGMTの形式(RFC 9110)です。週番号はISO 8601に従い、週は月曜日に始まり、第1週は最初の木曜日を含む週です。 - 始まりと終わり:始まりはそのタイムゾーンの00:00:00、終わりは次の期間の始まりから1秒引いた時刻です。夏時間の切り替えがある日は23時間または25時間になり、0時ちょうどが飛ばされる場合は実際に存在する最初の時刻を使います。
- 期間の換算には平均値を使います。1年は365.25日(31,557,600秒)、1か月はその12分の1(2,629,800秒)です。
- 夏時間の切り替えで飛ばされる時刻はエラーになり、2回現れる時刻は早いほうとして扱います。
例
| 入力 | 判定した単位 | UTCの日時 |
|---|---|---|
0 |
秒 | 1970-01-01T00:00:00.000Z |
1700000000 |
秒 | 2023-11-14T22:13:20.000Z |
1700000000123 |
ミリ秒 | 2023-11-14T22:13:20.123Z |
1700000000123456 |
マイクロ秒 | 2023-11-14T22:13:20.123456000Z |
1700000000123456789 |
ナノ秒 | 2023-11-14T22:13:20.123456789Z |
同じ1700000000は日本時間では2023-11-15 07:13:20(+09:00)で、日本時間の2026/10/04 15:05:00は1791093900です。
注意点
- 2つのログのタイムスタンプが食い違って見えるときは、まず単位とタイムゾーンを確認してください。片方が秒で、もう片方がミリ秒というのはよくあるケースです。
- JavaScriptの
Date.now()はミリ秒を返しますが、多くのUNIXツールやデータベースのUNIX_TIMESTAMP()は秒を返します。ページ下部のコード例で、言語ごとの書き方を確認できます。 - America/New_Yorkのように夏時間のあるタイムゾーンでは、春に飛ばされる時刻は存在しない時刻として表示されます。
- タイムゾーンの「韓国(KST)」ボタンはAsia/Seoulを使います。日本時間(JST)も同じ+09:00で夏時間がないため、日本の日時を扱うときもそのまま使えます。
よくある質問
秒・ミリ秒・マイクロ秒・ナノ秒はどのように見分けていますか?
絶対値で判定します。1e11未満は秒、1e11以上1e14未満はミリ秒、1e14以上1e17未満はマイクロ秒、1e17以上はナノ秒です。どの境界も同じ瞬間(ある単位では5138年、1つ細かい単位では1973年)にあたるので、普段扱う日付が重なることはありません。1973年より前の日付をミリ秒で表した値のような特殊なケースでは、単位を手動で選んでください。ナノ秒の値は2^53を超えるため、BigIntで正確に計算します。
日時をタイムスタンプにするとき、どのタイムゾーンが使われますか?
入力した年・月・日・時・分・秒は、選択したタイムゾーンの時刻として読みます。UTCボタンを押した場合はUTCです。同じ2024-01-01 09:00:00でも、日本時間とUTCでは32,400秒(9時間)の差があります。自由形式の日付に+09:00、Z、[Asia/Tokyo]のようなオフセットやタイムゾーンが書かれていれば、そちらが優先されます。
自由形式の入力欄ではどんな日付の書き方が読めますか?
ISO 8601/RFC 3339(2026-10-04T15:05:00+09:00)、RFC 9557(末尾の角括弧でタイムゾーンを指定)、RFC 5322(Sun, 04 Oct 2026 15:05:00 +0900)、HTTP-date、そして英語または韓国語で書いた日付(Oct 4, 2026 3:05 PM、4 October 2026など)です。2026/10/04 15:05:00のような数字だけの形式も使えます。「2026年10月4日」のような日本語の書き方には対応していないので、数字の形式で入力してください。どの形式として読んだかはすぐ下に表示され、読めなかった場合は理由が表示されます。
2038年問題の影響はありますか?
ありません。符号付き32ビット整数は2038-01-19に上限に達しますが、このツールはJavaScriptの数値を使い、およそ275760年までの日付を扱えます。値を渡す先のシステムが32ビットかどうかは、また別の問題です。
うるう秒はどう扱われますか?
UNIX時間はうるう秒を数えません。1日は常にちょうど86,400秒で、うるう秒の前後では同じタイムスタンプが2回現れることがあります。JavaScriptのDateも同じ規則なので23:59:60は表せず、このツールでも秒に60は入力できません。
入力した内容はサーバーに送信されますか?
いいえ。計算はすべてブラウザーのDate・Intl・BigIntで行い、何もアップロードされません。