UNIXタイムスタンプとは?
UNIXタイムスタンプ(エポック時間、POSIX時間とも呼ばれます)とは、協定世界時(UTC)の1970年1月1日 00:00:00 から経過した秒数のことです(うるう秒は含みません)。タイムゾーンに依存せず、ある瞬間を世界共通の数値で表せるため、データベース、API、ログファイル、各種プログラミング言語などで幅広く使われています。この変換ツールは、入力された日時をUTCとして扱い、対応するエポック値を「秒」と「ミリ秒」の両方で返します。
この変換ツールの使い方
変換したい瞬間の「年・月・日・時・分・秒」を入力します。すべての値は協定世界時(UTC)として解釈されます。「計算」を押すと、対応するUNIXタイムスタンプが秒単位で表示され、さらにJavaScriptのDateオブジェクトや多くのWeb APIで必要となるミリ秒の値も同時に得られます。
計算式の仕組み
計算では、まず1970年1月1日から指定した日付までの完全な日数を数え、それに86,400(1日の秒数)を掛け、最後にその日の時刻分の秒数を加えます。
エポック値 = 1970年からの日数 × 86400 + 時 × 3600 + 分 × 60 + 秒
$$t = \left\lfloor \frac{\text{UTC}\left(\text{Year},\ \text{Month},\ \text{Day},\ \text{Hour},\ \text{Minute},\ \text{Second}\right) - \text{UTC}(1970)}{1000} \right\rfloor$$
日数の計算ではうるう年も自動的に考慮されるため、2000年・2020年・2024年などの2月29日も正しく処理されます。
計算例
例として、2024年1月1日 00:00:00 UTC を考えてみましょう。1970-01-01 から 2024-01-01 までの完全な日数は 19,723 日です。これを掛け算すると、\(19{,}723 \times 86{,}400 = 1{,}704{,}067{,}200\) 秒となります。時・分・秒の追加分がないため、UNIXタイムスタンプは 1,704,067,200、ミリ秒の値は 1,704,067,200,000 になります。
よくある質問(FAQ)
入力する時刻は自分の地域の時刻(現地時間)ですか? いいえ。結果をあいまいにしないため、入力値はすべてUTCとして扱われます。必要に応じて、現地時間を先にUTCへ変換してから入力してください。日本標準時(JST)はUTC+9時間なので、JSTから9時間を引いた値がUTCになります。
タイムスタンプがマイナスになることはありますか? このツールは1970年以降の年を受け付けるため、結果は常に0以上になります。1970年より前の日付はマイナスのエポック値になります。
なぜ秒とミリ秒の両方が表示されるのですか? 多くのUNIX系システムは秒を使いますが、JavaScriptや多くのWeb APIはミリ秒を使います。どちらにもすぐ対応できるよう、両方を表示しています。