開発ツール

Unix時間変換ツール【無料・登録不要】タイムスタンプ⇔日本時間・UTC・ISO 8601

Unix時間変換ツール【無料・登録不要】タイムスタンプ⇔日本時間・UTC・ISO 8601
engblog-poster

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 時間を日時に変換する

  1. 「Unix 時間 → 日時」の入力欄に、Unix 時間を貼り付けます(例:1700000000)。
  2. 入力と同時に、日本時間・UTC・ISO 8601 形式の日時が表示されます。
  3. 使いたい行の「コピー」を押すと、その値をコピーできます。

「単位」が「自動判別」のときは、桁数から秒・ミリ秒・マイクロ秒・ナノ秒を判断し、どれとみなしたかを表示します。判別が意図と違うときは、「単位」で正しいものを選んでください。マイナスの値(1970 年より前)や、「1700000000.5」のような小数も変換できます。

日時を Unix 時間に変換する

  1. 「日時 → Unix 時間」の「タイムゾーン」で、入力する日時が日本時間か UTC かを選びます。
  2. 「日時」の入力欄に、「2024-01-01 09:00:00」のように日時を入力します。「2024/1/1 9:00」や「2024年1月1日 9時0分」の形でも入力できます。
  3. 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)の値桁数(現在の時刻の場合)主な例
秒170000000010 桁Linux の date +%s、Python の time.time()(小数付き)、PowerShell の ToUnixTimeSeconds()
ミリ秒170000000000013 桁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:072038-01-19 12:14:07
-2147483648(あふれた後の値)1901-12-13 20:45:521901-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 年までの日時を変換できます。

関連する記事・ツール

ABOUT ME
hr
hr
エンジニアとして働いている hr です。仕事や資格勉強で「こんなツールがあれば」と感じたものを、無料Webツールと解説記事にして発信しています。
記事URLをコピーしました