Unixタイムスタンプを読める日時に、逆に日時をタイムスタンプに変換します。桁数から秒・ミリ秒・マイクロ秒を自動判別し(単位を指定することもできます)、結果はローカル時刻とUTCの両方で表示します。現在のエポック秒は1秒ごとに更新され、計算はすべてブラウザ内で行われるため何もアップロードされません。
Unixタイムスタンプとは
Unixタイムスタンプ(エポック時間、POSIX時間)は、1970年1月1日 00:00:00 UTCからの経過秒数です。UTCを基準とした単一の数値なので、タイムゾーンもサマータイムの規則も表記の揺れもありません。データベースやログファイル、JWTトークン、HTTP APIが時刻をこの形式で保存するのはそのためです。1970年より前は負の数で表され、うるう秒は定義上無視されるので、1日は常にちょうど86,400秒として扱われます。
Unixタイムスタンプの変換手順
- 数値を貼り付ける — 「タイムスタンプ → 日時」の欄に値を入れます。単位を自動判別のままにすれば、桁数から秒・ミリ秒・マイクロ秒を判断します。
- 変換 — 変換ボタンを押すと、同じ瞬間がローカル時刻・UTC・ISO 8601形式、そして「何時間前」といった相対表現で表示されます。
- 逆方向 — 「日時 → タイムスタンプ」で日付と時刻を選び、入力した値がローカル時刻かUTCかを指定すると、秒とミリ秒のタイムスタンプが得られます。
- コピー — 結果の各行にコピーボタンがあり、上部のリアルタイム時計も秒・ミリ秒でコピーできます。
秒・ミリ秒・マイクロ秒の見分け方
いちばん手早い判別法は桁数です。現在の日時のタイムスタンプは秒なら10桁、ミリ秒なら13桁、マイクロ秒なら16桁になります。JavaScriptのDate.now()やJavaのSystem.currentTimeMillis()はミリ秒を返し、Cのtime()、PHPのtime()、Pythonのtime.time()、GoのUnix()、そして多くのSQLデータベースは秒を返します。ミリ秒の値を秒単位の関数に渡すのが、数万年先の日付になる典型的なバグです。変換結果がおかしいと感じたら、値はほぼ確実にミリ秒です。通常は自動判別で足りますが、単位を固定したいときはセレクターを使ってください。
ローカル時刻・UTC・ISO 8601
タイムスタンプ自体は常にUTC基準です。ローカル時刻の行は同じ瞬間をお使いのパソコンのタイムゾーンで表示したもので、その日付に適用されていたサマータイムのオフセット(今日のものではありません)も反映します。UTCの行はオフセットなしで表示します。ISO 8601の行(例: 2026-08-22T02:00:00.000Z)はJSONやAPIで使う機械可読の表記で、末尾のZがUTCを意味します。いずれも同一の瞬間を指すため、国をまたいだサーバー間でタイムスタンプをやり取りしても、指し示す時点はまったく同じです。
2038年問題
タイムスタンプを符号付き32ビット整数で保存するソフトウェアは2,147,483,647秒までしか数えられません。この値は2038年1月19日 03:14:07 UTCで尽き、そこで1901年に巻き戻ります。64ビットのタイムスタンプが標準になった理由であり、現代のシステムは影響を受けません。反対側にも同じ限界があり、符号付き32ビット値は1901年12月13日より前にも行けません。このツールはJavaScriptの数値を使うため1970年を中心に約±273,000年をカバーし、2038年をはるかに超える日付も問題なく変換します。
入力したデータはアップロードされますか
いいえ。変換はすべてブラウザ内蔵のDate・Intl APIで完結し、サーバーには何も送信されません。一度読み込めばオフラインでも動作します。ローカルのタイムゾーンはネットワーク照会ではなくお使いのシステム設定から読み取るため(ローカル時刻の結果の横に表示されます)、位置情報が端末の外に出ることはありません。入力が空、数値でない、あるいはJavaScriptのDateが表現できる範囲外の場合は、誤った日付ではなく明確なメッセージが表示されます。