Unixタイムスタンプ変換

Unixタイムスタンプ(エポック秒・ミリ秒)を、お使いのタイムゾーンとUTCの読みやすい日時に変換します。日時からタイムスタンプへの変換もできます。

現在のUnix時間 0

タイムスタンプ → 日時

日時 → タイムスタンプ

エポック秒 → 日時:タイムスタンプを変換する

  1. タイムスタンプ → 日時の欄に数値を貼り付けます。空白、カンマ、アンダースコアは無視されるので 1,767,225,600 でもかまいません。負の値や小数も入力できます。
  2. 単位は自動判別のままにするか、秒・ミリ秒・マイクロ秒・ナノ秒から選びます。判別した単位は入力欄の下に表示されます。
  3. 結果を、ローカル時間、UTC、ISO 8601、RFC 2822形式、「3日前」のような相対時間で確認します。ISOとRFCの行にはそれぞれコピーボタンがあります。

現在を押すと今の時刻が入り、上部のカウンターは現在のエポック値を秒とミリ秒でリアルタイムに表示します。

日時 → エポック秒:日付からタイムスタンプを求める

  1. 日時 → タイムスタンプの欄で、日付と時刻を秒まで指定します。
  2. その時刻がローカル時間(端末のタイムゾーン)かUTCかを選びます。この選択で、答えがUTCとの時差の分だけ変わります。
  3. 秒またはミリ秒のタイムスタンプ、あるいはISO 8601形式をコピーします。

Unix時間とは

Unix時間(エポック秒、POSIX時間とも呼ばれます)は、1970年1月1日00:00:00 UTC、つまり「エポック」からの経過秒数です。1日は常にちょうど86,400秒として扱われ、うるう秒は無視されます。同じ瞬間なら地球上のどこでも同じ数値になるため、データベース、ログ、API、ファイルシステムは、タイムゾーンの食い違いを気にせず時刻を記録するのにこの値を使います。タイムスタンプにタイムゾーンが関わるのは、カレンダーの日時に変換するときだけです。

秒、ミリ秒、マイクロ秒、ナノ秒?

システムによって数える単位が違い、桁数を見れば見当がつきます。現在の日付なら次のとおりです。

単位桁数2026年1月1日 00:00 UTC の値主な出どころ
秒101767225600Unixシェル、PHP、Pythonの int(time.time())、JWTのクレーム
ミリ秒131767225600000JavaScriptの Date.now()、Java、多くのJSON API
マイクロ秒161767225600000000一部のデータベースやトレーシングツール
ナノ秒191767225600000000000Goの UnixNano()、InfluxDB、高精度のログ

自動判別は、10¹¹未満を秒、10¹⁴未満をミリ秒、10¹⁷未満をマイクロ秒、それ以上をナノ秒として読みます。1973年から5138年までの日付ならすべて正しく判別できます。例外は、1966年末から1973年3月初めまでの日付のミリ秒値です。数値が小さく秒のように見えるため、1970年にそこまで近い日付は単位を手動で選んでください。日時はミリ秒まで表示され、それより細かい桁は入力できますが表示されません。

変換例

タイムスタンプUTCの日時備考
01970年1月1日 00:00:00エポックそのもの
10000000002001年9月9日 01:46:40初めて10桁になったタイムスタンプ
17672256002026年1月1日 00:00:00このツールの入力例の値
-864001969年12月31日 00:00:00負の値は1970年より前
21474836472038年1月19日 03:14:07符号付き32ビット整数の最大値

逆方向の例:2026年7月1日12:00をUTCとして入力すると 1782907200 です。東京(UTC+9)に設定されたパソコンで同じ時刻をローカル時間として入力すると 1782874800 となり、ちょうど32,400秒(9時間)早くなります。

タイムゾーンと夏時間

1つのタイムスタンプは1つの瞬間ですが、世界の場所によって読み方が変わります。1767225600 は東京では2026年1月1日午前9時、ニューヨークでは2025年12月31日午後7時です。変換した日時が何時間かずれて見えるなら、タイムスタンプはたいてい正しく、表示しているタイムゾーンが違うだけです。夏時間(サマータイム)はお使いのタイムゾーンに合わせて自動的に反映されます。同じ瞬間を複数の都市で並べて見るにはタイムゾーン変換を使ってください。

コードや表計算ソフトでの変換

  • JavaScript:現在値は Math.floor(Date.now() / 1000)、変換は new Date(1767225600 * 1000).toISOString()。
  • Python:int(time.time())、datetime.fromtimestamp(1767225600, tz=timezone.utc)。
  • PHP:time()、date('c', 1767225600)。
  • シェル:date +%s。変換はLinuxなら date -d @1767225600、macOSなら date -r 1767225600。
  • SQL:PostgreSQLは to_timestamp(1767225600)、MySQLは FROM_UNIXTIME(1767225600)。
  • ExcelやGoogleスプレッドシート:=A1/86400+DATE(1970,1,1) と入力し、セルの書式を日付と時刻にします。結果はUTCなので、日本時間にするには +9/24 を足します。

よくある質問

2038年問題とは何ですか?

Unix時間を符号付き32ビット整数で保存するソフトウェアは2,147,483,647までしか数えられず、この値には2038年1月19日03:14:07 UTCに達します。その1秒後には値が−2,147,483,648に戻り、1901年12月13日と解釈されます。現在のOSやプログラミング言語は64ビットの時間を使いますが、古い組み込み機器、ファイル形式、32ビット整数で定義されたデータベースの列は、今でも影響を受ける可能性があります。

タイムスタンプが13桁なのはなぜですか?

ミリ秒単位だからです。1,000で割れば秒になりますし、そのままここに貼り付けても自動判別が処理します。

Unixタイムスタンプにうるう秒は含まれますか?

含まれません。Unix時間はどの日も86,400秒だとみなすため、うるう秒は数えられず、OSは代わりに1秒を繰り返したり少しずつ分散させたりして吸収します。日常的な変換では目に見える違いはありません。

どの範囲の日時まで変換できますか?

ブラウザの日付機能が扱える範囲、おおよそ紀元前271,821年から西暦275,760年までです。それを超えると範囲外のメッセージが表示されます。