UNIXタイムスタンプ変換の使い方
- ページ上部で現在時刻のタイムスタンプをリアルタイムに確認し、ワンクリックでコピーできます。
- タイムスタンプ → 日付の欄に数値を入力すると、日本時間・UTC・ISO 8601形式と「何日前か」が表示されます。
- 単位は桁数から自動で判定しますが、必要に応じて「秒」または「ミリ秒」を手動で選べます。
- 日付 → タイムスタンプで日付・時刻とタイムゾーンを選ぶと、秒とミリ秒の値が表示されます。
UNIXタイムスタンプ(epoch time)とは?
UNIXタイムスタンプ(UNIX時間、エポック秒)は、1970年1月1日0時0分0秒(UTC)からの経過時間を秒単位で数えた数値です。タイムゾーンに関係なく世界中で同じ値になるため、サーバーログやデータベース、APIのレスポンスなどで日時を保存する際に広く使われています。
- 0 → 1970-01-01 09:00:00(日本時間)
- 1,000,000,000 → 2001-09-09 10:46:40(日本時間)
- 1,700,000,000 → 2023-11-15 07:13:20(日本時間)
10桁と13桁のタイムスタンプの違い
10桁の数値は秒、13桁の数値はミリ秒(1/1000秒)単位です。Linux・PHP・Pythonのtime()は通常秒を、JavaScriptのDate.now()やJavaのSystem.currentTimeMillis()はミリ秒を返します。ミリ秒の値を1,000で割ると秒の値になります。
| 環境 | 現在のタイムスタンプを取得 | 単位 |
|---|---|---|
| JavaScript | Date.now() | ミリ秒 |
| Python | time.time() | 秒(小数) |
| Java | System.currentTimeMillis() | ミリ秒 |
| Linuxシェル | date +%s | 秒 |
| MySQL | UNIX_TIMESTAMP() | 秒 |
タイムスタンプを日本時間に変換する計算方法
タイムスタンプそのものはUTC基準です。日本標準時(JST)はUTCより9時間進んでいるため、UTCの日時に9時間を足すと日本時間になります。日本ではサマータイム(夏時間)を実施していないので、1年を通してUTC+9で計算できます。
Excelでは =(A1/86400)+DATE(1970,1,1)+9/24 のように、1日(86,400秒)で割ってから1970年1月1日を足し、さらに9時間を足すと日本時間に変換できます。セルの表示形式を「yyyy/mm/dd hh:mm:ss」などの日時形式にすると見やすくなります。
ISO 8601形式とは?
ISO 8601は日時を表す国際規格で、2023-11-14T22:13:20Z のように「年-月-日T時:分:秒」の順で書きます。末尾の Z はUTCを表し、日本時間なら +09:00 を付けて表します。APIやJSONで日時をやり取りする際によく使われる形式です。
2038年問題とは?
タイムスタンプを符号付き32ビット整数で保存している古いシステムでは、最大値2,147,483,647(日本時間2038年1月19日12:14:07)を超えると値が負の数になり、1901年に戻ってしまいます。これを2038年問題といいます。最新のOSやプログラミング言語は64ビット整数を使っているため、この問題は起きません。