Unix時間変換ツール【無料・登録不要】タイムスタンプ⇔日本時間・UTC・ISO 8601
Unix 時間(UNIX タイムスタンプ)と、ふだん使う日時を相互に変換できる無料ツールです。「1700000000」のような数字を入れると、日本時間と UTC(協定世界時)を並べて表示します。秒とミリ秒は桁数から自動で判別するので、ログや API のレスポンスに出てきた値をそのまま貼り付けて確認できます。
日本時間は、お使いのパソコンのタイムゾーン設定にかかわらず、常に UTC+9 で計算します。入力したデータはお使いのブラウザの中だけで処理され、サーバーには一切送信されません。
現在の Unix 時間
Unix 時間 → 日時
日時 → Unix 時間
「2024-01-01 09:00:00」「2024/1/1 9:00」「2024年1月1日 9時0分」や、ISO 8601 形式(2024-01-01T00:00:00Z、2024-01-01T09:00:00+09:00)で入力できます。
日本時間は、お使いのパソコンのタイムゾーン設定にかかわらず UTC+9 で表示します。入力したデータはブラウザ内だけで処理し、サーバーへの送信や保存は一切行いません。
使い方
Unix 時間を日時に変換する
- 「Unix 時間 → 日時」の入力欄に、Unix 時間を貼り付けます(例:1700000000)。
- 入力と同時に、日本時間・UTC・ISO 8601 形式の日時が表示されます。
- 使いたい行の「コピー」を押すと、その値をコピーできます。
「単位」が「自動判別」のときは、桁数から秒・ミリ秒・マイクロ秒・ナノ秒を判断し、どれとみなしたかを表示します。判別が意図と違うときは、「単位」で正しいものを選んでください。マイナスの値(1970 年より前)や、「1700000000.5」のような小数も変換できます。
日時を Unix 時間に変換する
- 「日時 → Unix 時間」の「タイムゾーン」で、入力する日時が日本時間か UTC かを選びます。
- 「日時」の入力欄に、「2024-01-01 09:00:00」のように日時を入力します。「2024/1/1 9:00」や「2024年1月1日 9時0分」の形でも入力できます。
- Unix 時間(秒・ミリ秒)が表示されます。「コピー」を押してコピーします。
「2024-01-01T00:00:00Z」や「2024-01-01T09:00:00+09:00」のように、末尾に時差(Z は UTC のこと)を書いた ISO 8601 形式で入力した場合は、タイムゾーンの選択よりも入力した時差を優先します。
現在の Unix 時間をコピーする
ツールのいちばん上に、現在の Unix 時間(秒・ミリ秒)と日本時間を表示しています。「コピー」を押すと、そのとき表示している値をコピーします。「表示を止める」を押すと、表示が止まり、同じ値をじっくり確認できます。
Unix時間とは?
Unix 時間(UNIX 時間、エポック秒とも呼ばれます)は、1970 年 1 月 1 日 0 時 0 分 0 秒(UTC)からの経過秒数で日時を表す方法です。この基準の時刻を「エポック」と呼びます。たとえば、Unix 時間の 1700000000 は、UTC で 2023 年 11 月 14 日 22 時 13 分 20 秒、日本時間で 2023 年 11 月 15 日 7 時 13 分 20 秒です。
Unix 時間は 1 つの数字で表せるので、日時の前後の比較や、「何秒たったか」の計算が簡単です。また、世界中どこで計っても同じ値になり、タイムゾーンの違いを気にせずに記録できます。そのため、Linux などの OS、データベース、ログ、Web API など、さまざまな場面で使われています。
日本時間は UTC より 9 時間進んでいるため、同じ Unix 時間を日本時間で表すと、UTC の時刻に 9 時間を足したものになります。たとえば Unix 時間の 0 は、UTC では 1970 年 1 月 1 日 0 時 0 分 0 秒、日本時間では 1970 年 1 月 1 日 9 時 0 分 0 秒です。
コマンドで Unix 時間を確認する
Linux(GNU の date コマンド)では、次のコマンドで現在の Unix 時間(秒)を表示できます。
date +%s
Unix 時間を UTC の日時に変換するには、-d の後ろに「@」と Unix 時間を付けます。次のコマンドを実行すると「Tue Nov 14 22:13:20 UTC 2023」と表示されます(表示の形は言語の設定によって変わります)。
date -u -d @1700000000
Windows の PowerShell では、次のコマンドで現在の Unix 時間(秒)を表示できます。
[DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
Unix 時間を日本時間の日時に変換するには、次のコマンドを実行します。「2023-11-15 07:13:20 +09:00」と表示されます。
[DateTimeOffset]::FromUnixTimeSeconds(1700000000).ToOffset([TimeSpan]::FromHours(9)).ToString('yyyy-MM-dd HH:mm:ss zzz')
秒とミリ秒の違い
Unix 時間は本来「秒」で数えますが、プログラミング言語やシステムによっては、より細かい「ミリ秒(1000 分の 1 秒)」で扱うことがあります。同じ時刻でも、ミリ秒で表すと秒の 1000 倍の値になり、桁数が 3 桁増えます。
| 単位 | 2023-11-14 22:13:20(UTC)の値 | 桁数(現在の時刻の場合) | 主な例 |
|---|---|---|---|
| 秒 | 1700000000 | 10 桁 | Linux の date +%s、Python の time.time()(小数付き)、PowerShell の ToUnixTimeSeconds() |
| ミリ秒 | 1700000000000 | 13 桁 | JavaScript の Date.now()、Java の System.currentTimeMillis() |
ミリ秒の値を秒として扱うと、はるか未来(数万年後)の日時になってしまいます。逆に、秒の値をミリ秒として扱うと、1970 年 1 月の日時になります。変換結果が明らかにおかしいときは、単位の取り違えを疑いましょう。
このツールの「自動判別」は、値の大きさ(マイナスの場合は符号を除いた値)で次のように判断します。
- 100,000,000,000(12 桁)未満:秒
- 100,000,000,000,000(15 桁)未満:ミリ秒
- 100,000,000,000,000,000(18 桁)未満:マイクロ秒
- それ以上:ナノ秒
秒で 100,000,000,000 は西暦 5138 年にあたるため、現実的な日時であれば正しく判別できます。ただし、1970 年に近い日時(ミリ秒で 11 桁以下の値)は秒と判断されるので、その場合は「単位」で「ミリ秒」を選んでください。
2038年問題
2038 年問題は、Unix 時間を符号付き 32 ビット整数で保存しているプログラムで、2038 年 1 月に時刻が正しく扱えなくなる問題です。
符号付き 32 ビット整数で表せる最大の値は 2147483647 です。これを Unix 時間として日時に直すと、2038 年 1 月 19 日 3 時 14 分 7 秒(UTC)、日本時間では 2038 年 1 月 19 日 12 時 14 分 7 秒になります。その 1 秒後には値があふれて(オーバーフローして)-2147483648 になり、1901 年 12 月 13 日 20 時 45 分 52 秒(UTC)として扱われてしまいます。
| Unix 時間 | UTC | 日本時間 |
|---|---|---|
| 2147483647(32 ビットの最大値) | 2038-01-19 03:14:07 | 2038-01-19 12:14:07 |
| -2147483648(あふれた後の値) | 1901-12-13 20:45:52 | 1901-12-14 05:45:52 |
このツールに 2147483647 や -2147483648 を入力すると、上の表と同じ日時になることを確かめられます。
対策は、Unix 時間を 64 ビット整数で扱うことです。64 ビットなら、表せる範囲は数千億年先まで広がります。最近の OS やプログラミング言語の多くは 64 ビットで扱うようになっていますが、古いシステムや組み込み機器、32 ビットの整数型で時刻を保存しているデータベースやファイル形式などには、今も影響が残っている場合があります。たとえば MySQL の TIMESTAMP 型は、扱える範囲が「1970-01-01 00:00:01」から「2038-01-19 03:14:07」(UTC)までと公式ドキュメントに書かれています。
よくある質問
入力したデータは保存されませんか?
保存されません。変換はすべてお使いのブラウザの中で行われ、サーバーへの送信も保存も行いません。ページを閉じると入力内容は消えます。
海外のパソコンで使っても、日本時間で表示されますか?
はい。このツールは、パソコンのタイムゾーン設定を使わずに、UTC に 9 時間を足して日本時間を計算します。どこで使っても、日本時間と UTC が正しく表示されます。
うるう秒はどう扱われますか?
Unix 時間は、うるう秒を数えない決まりになっています(1 日を常に 86400 秒として数えます)。そのため、このツールでも「23:59:60」のようなうるう秒の時刻は入力できません。
マイナスの Unix 時間はありますか?
あります。1970 年 1 月 1 日 0 時 0 分 0 秒(UTC)より前の日時は、マイナスの値で表します。たとえば -1 は、UTC で 1969 年 12 月 31 日 23 時 59 分 59 秒です。このツールでは、西暦 1 年から 9999 年までの日時を変換できます。
関連する記事・ツール
- JavaScriptとは?できること・歴史・Javaとの違いと、ブラウザで今すぐ試す方法
- 基数変換ツール(2進数・8進数・10進数・16進数)
- Cron 式生成・解説ツール
- JSON 整形ツール
- Base64エンコード・デコードツール【無料・登録不要】日本語・ファイル対応