エポックタイム変換器
UnixタイムスタンプをUTC日時に変換、または日時をエポック秒に変換します。
このエポックタイム変換器の使い方
- 変換モードを選択する
「変換モード」フィールドで「エポックから日付」または「日付からエポック」を選択します。
- エポックから日付への変換
「エポックタイムスタンプ(秒)」フィールドに Unix タイムスタンプを秒単位で入力します。
- 日付からエポックへの変換
「カレンダーの日付」で日付を選択し、必要に応じて「時 (UTC)」、「分 (UTC)」、「秒 (UTC)」を設定します。
- 結果を確認する
この計算機は、UTC値、Unixミリ秒、および曜日を表示します。
このエポックタイムコンバーターの仕組み
このエポックタイムコンバーターは、Unixタイムスタンプと人間が読めるUTC形式の日時を相互に変換します。Unix時間(POSIX時間またはエポック時間とも呼ばれます)は、1970年1月1日午前0時UTC(1970-01-01T00:00:00Z)を起点(Unixエポック)とし、そこから経過した秒数をカウントしたものです。この単一の整数表現は、データベース、API、ログファイル、JWTトークン、および事実上すべての現代のプログラミング言語において、タイムスタンプを保存および送信するための事実上の標準となっています。このコンバーターは双方向の変換に対応しており、数値を入力すると対応するUTC日時、曜日、ミリ秒換算値を返し、カレンダーの日時を入力すると秒およびミリ秒単位のエポック値を返します。
Unix時間 = 1970-01-01T00:00:00Zからの経過秒数 Unixタイムスタンプ 1,700,000,000 を日付に変換するには:1970-01-01 00:00:00 UTC を起点に 1,700,000,000 秒を加算します。これは 19,675 日 17 時間 46 分 40 秒に相当します。変換後の UTC 日時は 2023-11-14 22:13:20 UTC で、火曜日にあたります。ミリ秒換算では 1,700,000,000,000 です。逆に、2023年11月14日 22:13:20 UTC を入力すると、エポック値は正確に 1,700,000,000 になります。
タイムスタンプ 0 は 1970-01-01 00:00:00 UTC(木曜日)に変換されます。ミリ秒換算も 0 です。
タイムスタンプ 1,704,000,000 は 2023-12-31 12:00:00 UTC(日曜日)に変換されます。「日付からエポック」モードでその日時を入力すると、1,704,000,000 が返されます。
- ✓ すべての計算はUTCで行われます。現地時間への変換には、変換後に適切なタイムゾーンのオフセットを適用する必要があります。
- ✓ うるう秒はカウントされません。POSIXと同様に、このコンバーターは1日を正確に86,400秒として扱います。これは、ほとんどのプログラミング言語やオペレーティングシステムの動作と一致します。
- ✓ 負のタイムスタンプは、エポック(1970年1月1日)より前の日付を表します。例えば、−86400は1969年12月31日に対応します。
- ✓ ミリ秒単位のタイムスタンプは、入力前に1,000で割る必要があります。このコンバーターは入力を秒単位で受け付け、結果にミリ秒換算値を表示します。
- JavaScript の Date.now() や Java の System.currentTimeMillis() は秒ではなくミリ秒を返します。ここに入力する前に 1,000 で割るか、比較にはミリ秒の出力を使用してください。
- 2038年問題は 32 ビット符号付き整数のタイムスタンプに影響し、2038年1月19日 03:14:07 UTC にオーバーフローが発生します。現在のほとんどのシステムは 64 ビットのタイムスタンプに移行しています。
- API レスポンスやログファイルのデバッグ時に、ちょうど 3,600 秒または 7,200 秒ずれているタイムスタンプがあれば注意してください。これは通常、処理のどこかでタイムゾーンのオフセットが適用(または欠落)されたことを示しています。
- エポック時間は(うるう秒の調整を除き)常に単調増加するため、イベントのソート、期間の計算、時間ベースのユニークな識別子の生成に最適です。
- IEEE Std 1003.1 (POSIX) — エポックからの秒数の定義
- Unix エポックの起源 — The Unix Heritage Society および Bell Labs のドキュメント
- RFC 3339 — インターネット上の日付と時刻:タイムスタンプ
Unixタイムスタンプとは何ですか?
Unixタイムスタンプとは、1970年1月1日午前0時(UTC)の「Unixエポック」からの経過秒数です。この単一の整数は、データベース、API、ログファイル、およびほとんどのプログラミング言語において、時間を表すための事実上の標準となっています。タイムゾーンに依存せず、単調増加するため、並べ替え、期間の計算、時間ベースの比較が容易になります。JavaScriptの Date.now() や多くのAPIはミリ秒(秒 × 1,000)を返すため、ここにミリ秒の値を入力する場合は1,000で割ってください。負のタイムスタンプは1970年以前の日付を表します。例えば、−86400はエポックのちょうど1日前です。
開発者によるエポックタイムの活用事例
開発者は、データベースへのイベント時刻の保存、JSON APIでの日付のシリアル化、時間ベースのキャッシュキーの生成、ログエントリのデバッグなどにUnixタイムスタンプを使用します。データベースの列では、効率的なインデックス作成や範囲クエリのために、タイムスタンプを整数として保存することがよくあります。APIレスポンスでは、タイムゾーンの曖昧さを避けるために、エポック秒またはミリ秒を返すことが一般的です。デバッグ時には、ログやJWTクレームの生のタイムスタンプを人間が読める形式の日付に変換することで、値が正しいか、あるいはタイムゾーンの要因でずれているかを素早く確認できます。エポックタイムは、レート制限、セッションの有効期限、分散システムにおけるソート可能な一意識別子の生成にも使用されます。
エポック時間変換 FAQ
Unix エポックとは何ですか?
Unix エポックとは、Unix 時間を計測するための基準点(1970年1月1日 00:00:00 UTC、1970-01-01T00:00:00Z)のことです。タイムスタンプ 0 は、まさにこの瞬間を指します。
JavaScript のタイムスタンプの桁数が多いのはなぜですか?
JavaScriptのDate.now()は、秒ではなくエポックからのミリ秒を返します。このツールで使用される秒ベースの形式に変換するには1,000で割るか、ミリ秒の出力と直接比較してください。
負のタイムスタンプを入力できますか?
はい。負の値はエポックより前の日付を表します。例えば、−86400はエポックのちょうど1日前の1969-12-31T00:00:00Zに対応します。
うるう秒には対応していますか?
いいえ、これはPOSIX標準に準拠しています。POSIX時間は、1日が正確に86,400秒であると想定しています。1972年以降に挿入された27のうるう秒は個別に表現されないため、うるう秒の境界ではUTCとUnix時間が最大1秒異なる場合があります。
2038年問題とは何ですか?
Unix時間を32ビット符号付き整数として保存するシステムは、UTC 2038年1月19日03:14:07にオーバーフローし、大きな負の数にラップされて1901年の日付を生成します。現在のほとんどのプラットフォームは64ビットのタイムスタンプを使用しており、2,900億年以上オーバーフローすることはありません。