T

Text Machine

強力なテキストツールを、ブラウザで

Unixタイムスタンプ変換

Unixタイムスタンプ(エポック)を、ローカル時刻・UTC・ISO 8601 の読みやすい日付に変換したり、任意の日付をタイムスタンプに戻したりできます。秒・ミリ秒のどちらにも対応しています。

現在のUnix時間

ミリ秒:

ISO 8601:

タイムスタンプから日付へ

エポック値を貼り付けてください。タイムスタンプがミリ秒の場合はトグルを切り替えます。

日付からタイムスタンプへ

日付と時刻を選択すると、そのUnixタイムスタンプが得られます。

Unixタイムスタンプ変換 の使い方

  1. 1

    タイムスタンプを入力する

    「タイムスタンプから日付へ」の入力欄にUnixタイムスタンプを入力するか貼り付け、値に合わせて「秒 / ミリ秒」トグルを切り替えます。

  2. 2

    日付を読み取る

    その時刻をローカルのタイムゾーン、UTC、ISO 8601 形式の文字列、そして「3時間前」のような相対時間で確認できます。

  3. 3

    日付を逆変換する

    「日付からタイムスタンプへ」のピッカーで任意の日付と時刻を選ぶと、秒とミリ秒のエポック値が得られます。

  4. 4

    結果をコピーする

    任意の値のコピーをクリックするとクリップボードに保存され、コードやデータベースクエリ、APIリクエストにそのまま貼り付けられます。

開発者のための Unix 時間の解説

Unix タイムスタンプとは何か

Unix タイムスタンプは、ある時点を表すひとつの数値です。Unix エポック、すなわち 1970年1月1日の UTC 午前0時からの経過秒数を数えたものです。たとえばタイムスタンプ 1700000000 は、2023年11月14日 22:13:20 UTC に対応します。ひとつの数値が、日付と時刻のすべてを曖昧さなく捉えます。

上に向かって数えていくだけの整数なので、Unix 時間は保存・並べ替え・比較が容易です。あるタイムスタンプから別のタイムスタンプを引けば、2つの出来事の間の正確な秒数が得られます。この単純さこそ、ファイルの更新時刻から認証トークンまで、コンピューティングの非常に多くを支えている理由です。

なぜ 1970年なのか

1970年というエポックは、ちょうどその頃ベル研究所で開発が進められていた Unix オペレーティングシステムに由来する、歴史的な産物です。エンジニアたちはシステムクロックのための固定された基準点を必要としていて、自分たちが取り組んでいた年代の始まりは、きりがよく便利な選択でした。それが定着し、何十年も経った今も、ほぼすべてのプラットフォームで標準であり続けています。

1970年に数学的に特別なところは何もなく、単に共有されたゼロ点にすぎません。重要なのは、誰もがそれに合意していることです。その共通の基準があるからこそ、あるマシンで生成されたタイムスタンプを、ベンダーや言語、場所に関係なく、他のどのマシンでも正しく理解できるのです。

秒とミリ秒

伝統的な Unix 時間は秒単位で計測されますが、現代の多くの環境では、より細かい分解能のためにミリ秒を使います。たとえば JavaScript の Date.now はミリ秒を返します。実用的な見分け方は桁数です。現在のタイムスタンプは秒単位なら10桁ですが、同じ時点をミリ秒単位で表すと13桁で、およそ1,000倍大きくなります。

この2つの単位を取り違えるのは、よくあるバグです。秒を期待する関数にミリ秒の値を渡すと、日付は何万年も未来になってしまい、その逆をすると 1970年あたりに戻ってしまいます。変換後の日付がばかげて見えるときは、まず単位を確認してください。このツールの「秒」と「ミリ秒」のトグルは、まさにその混乱をワンクリックで解消するために存在します。

UTC とローカル時刻

Unix タイムスタンプ自体は、タイムゾーンを持ちません。地球上のどこでも同じ瞬間を指し示し、その数値は東京にいてもニューヨークにいても同一です。タイムゾーンが関わってくるのは、その瞬間を人が読める日付に変換するときだけであり、だからこそ同じタイムスタンプが、場所によって異なる時計の時刻として表示されるのです。

このコンバーターは両方の形式を表示します。お使いのデバイスのタイムゾーンで整形したローカル時刻と、普遍的な基準である UTC です。タイムスタンプを UTC で保存・送信し、表示のときだけローカル時刻に変換するのが標準的なやり方で、特に夏時間(サマータイム)の切り替えのあたりで起きがちな、数時間ずれるたぐいのバグをまるごと避けられます。

2038年問題

古いシステムの多くは、Unix 時間を符号付き32ビット整数で保存しますが、これが保持できる最大値は 2,147,483,647 です。その上限に達するのが、2038年1月19日 03:14:07 UTC です。その1秒後にカウンターはオーバーフローし、大きな負の数へと巻き戻り、そうしたシステムはそれを 1901年に遡った日付として解釈してしまいます。

これは2000年問題が現代に響いたもので、組み込み機器やレガシーなデータベース、いまだ32ビット時間を使っているあらゆるコードを脅かします。解決策は、時間をより幅広い64ビット整数で保存することで、これによって限界が数千億年も先へと押しやられます。このツール自体は、32ビット時間ではなく JavaScript 組み込みの日付処理を使ってブラウザ内で動作するので、2038年をはるかに超える日付も問題なく変換します。

両方向への変換

タイムスタンプから日付へ進むとは、その数値をエポックからの秒数として扱い、それを足し上げることを意味します。その逆、すなわち日付からタイムスタンプへ変換することは、エポックからその時点までに何秒あるかを計算します。このコンバーターは両方を行います。エポック値を貼り付けてその日付を読み取ることも、ピッカーで日付を選んでそのタイムスタンプを得ることもできます。

「3時間前」のような相対時間の表示は、現在の時点からタイムスタンプを引き、その差を平易な言葉で言い表すことで導かれます。ひと目で値の妥当性を確認するのに便利で、たとえば2年後の未来から来たと主張するログのエントリは、明らかに怪しいとわかります。

Unix 時間に出会う場面

Unix タイムスタンプは、ソフトウェアのいたるところにあります。サーバーのログは、出来事を正確に順序づけられるよう、各行にタイムスタンプを刻みます。REST API は、言語に依存せずコンパクトであるため、created_at や expires_at のようなフィールドでそれらを返します。データベースは並べ替えや時間範囲のクエリにそれらを使い、JWT は有効期限を Unix タイムスタンプとしてエンコードします。

開発者やアナリストにとって、こうした値を素早く読み取ることは、日々の必要事です。API のレスポンスをデバッグしたり、ログファイルを拾い読みしたり、トークンがいつ失効するかを確認したりするとき、生の数値をコンバーターに放り込めば、不透明な整数が、ローカル時刻と UTC の両方で、秒またはミリ秒で、筋道立てて考えられる日付へと変わります。

よくある質問

Unixタイムスタンプとは何ですか?
Unixタイムスタンプは、エポック時間とも呼ばれ、うるう秒を除いて1970年1月1日 00:00:00 UTC からの経過秒数を表します。ある時点をコンパクトかつタイムゾーンに依存しない形で表現でき、プログラミングやデータベース、APIで広く使われています。
自分のタイムスタンプは秒単位ですか、ミリ秒単位ですか?
Unixタイムスタンプは伝統的に秒単位で計測され、現在の日付では10桁になります。JavaScriptや多くのAPIはミリ秒単位を使い、こちらは13桁です。数値が想定よりおよそ1,000倍大きい場合はほぼ間違いなくミリ秒単位なので、トグルを切り替えて正しく変換してください。
このコンバーターはどのタイムゾーンを使いますか?
「ローカル時刻」の結果はお使いのデバイスのタイムゾーンを使用し、UTCとISO 8601の結果は常に協定世界時で表示されます。Unixタイムスタンプ自体にはタイムゾーンがなく、地球上のどこでも同じ瞬間を表します。
2038年問題とは何ですか?
Unix時間を符号付き32ビット整数で保存するシステムは、2038年1月19日 03:14:07 UTC までしかカウントできず、それを超えると値がオーバーフローします。最新の64ビットシステムやこのツールはより大きな数値を使うため、この問題の影響を受けません。
入力したデータはサーバーに送信されますか?
いいえ。すべての変換は組み込みの日付関数を使ってブラウザ内だけで実行されます。入力した内容がアップロード・記録・保存されることはないため、このツールはオフラインでも動作し、データを完全に保護します。

関連ツール

こちらの便利なツールもどうぞ

JSON ↔ CSV 変換

JSON ↔ YAML 変換

2進数 ↔ 10進数コンバーター

10進数 ↔ 2進数 変換ツール

CSVをJSONに変換

テキスト ↔ バイナリ変換