Unix時間変換機
タイムスタンプと通常の時刻をスムーズに相互変換します。
Unix時間(ユニックス時間)とは?
Unix時間(Unix Time)とは、コンピュータシステムで時刻を表現する方法の一つで、 1970年1月1日 午前0時0分0秒(UTC)からの経過秒数で表されます。この起点の時刻は「Unixエポック(Unix Epoch)」と呼ばれます。
なぜこのような複雑な方法を使うのでしょうか?それは、コンピュータにとって「2024年1月1日」といった形式よりも、単純な「数字(整数)」の方が計算や比較が圧倒的に楽だからです。例えば、2つの時刻の差を求める際、日付形式ではうるう年や月ごとの日数の違いを考慮する必要がありますが、Unix時間なら単なる引き算で済みます。
2038年問題に注意
Unix時間を「32ビット符号付き整数」で管理している古いシステムでは、2038年1月19日 3時14分7秒(UTC)に数値が溢れ(オーバーフロー)、時刻が1901年に戻ってしまう不具合が発生します。これが有名な「2038年問題」です。現代の64ビットシステムでは、宇宙の寿命よりも長い時間を扱えるため、この問題は解消されています。
各プログラミング言語でのUnix時間取得方法
開発現場でよく使われる取得コマンドをまとめました。コピーしてご利用ください。
| 言語 | 取得コード(現在の秒数) |
|---|---|
| JavaScript | Math.floor(Date.now() / 1000) |
| Python | import time; int(time.time()) |
| PHP | time() |
| Ruby | Time.now.to_i |
| MySQL | SELECT UNIX_TIMESTAMP(); |
Unix時間とUTC・JSTの関係
Unix時間は「UTC(協定世界時)」に基づいています。そのため、世界中のどこでUnix時間を取得しても、その瞬間は同じ数値になります。 しかし、私たちが日本で見ている時計は「JST(日本標準時)」であり、UTCよりも9時間進んでいます。
このツールでは、Unix時間から日本時間の表示と、世界標準のISO 8601形式の表示を同時に行います。
よくある質問 (FAQ)
Q. ミリ秒単位のUnix時間はどう扱えばいいですか?
A. 多くのプログラミング言語(JavaScriptの `Date.now()` など)では、秒ではなくミリ秒で値を返します。10桁なら「秒」、13桁なら「ミリ秒」と判断するのが一般的です。当ツールではどちらの入力も考慮して計算可能です。
Q. うるう秒はどうなりますか?
A. Unix時間は歴史的にうるう秒を無視する設計になっています(1日は常に正確に86,400秒として扱われます)。厳密な科学計算を行う場合は、TAI(国際原子時)など別の基準が必要になることがあります。
Q. マイナスのUnix時間は存在しますか?
A. はい。1970年1月1日より前の時刻はマイナスで表現されます。例えば、1960年代の日時は負の整数になります。