「APIのレスポンスに 1700000000 みたいな数字が並んでいるけど、これ何時?」「エポックタイムってどう読むの?」そんなとき、Unix時間変換が必要になります。
この記事では、Unix時間(エポックタイム)を日時に変換する方法を、10桁と13桁の違い、タイムゾーンの扱い、開発での使いどころまで解説します。
Unix時間とは
Unix時間(エポックタイム)は、1970年1月1日0時0分0秒(UTC)からの経過秒数で時刻を表す方式です。プログラムやAPIで広く使われています。
1700000000 → 2023年11月15日 06:13:20(UTC)
- 正の値:1970年以降
- 負の値:1969年以前
- 整数のため、時刻の比較や計算が簡単
ポイント:Unix時間は常にUTC基準です。表示するときは、ブラウザのタイムゾーン(日本ならJST)に変換して表示します。
10桁と13桁の違い
Unix時間には、秒単位とミリ秒単位の2つの表記が使われます。
| 桁数 | 単位 | 例 | 意味 |
|---|---|---|---|
| 10桁 | 秒 | 1700000000 |
1970年からの経過秒数 |
| 13桁 | ミリ秒 | 1700000000000 |
1970年からの経過ミリ秒数 |
13桁は10桁の1000倍です。JavaScriptの Date.now() は13桁(ミリ秒)、PHPやPython(一部)の time() は10桁(秒)を返します。
変換のコツ
- 13桁→10桁:1000で割る(例:
1700000000000 ÷ 1000 = 1700000000) - 10桁→13桁:1000を掛ける(例:
1700000000 × 1000 = 1700000000000)
タイムゾーンの扱い
Unix時間自体はタイムゾーンを持ちません。同じ値は世界中で同時刻を表します。表示するときに、それぞれのタイムゾーンに変換します。
- 東京(JST)= UTC + 9時間
- ニューヨーク(EST)= UTC − 5時間(標準時)
例:1700000000(UTC 06:13:20)
- 日本時間:15:13:20
- ロンドン(UTC):06:13:20
- ニューヨーク(EST):01:13:20
注意:10桁をミリ秒のつもりで扱うと、日付が1970年に戻ってしまいます(例:`1700000000`をミリ秒として読むと1970年1月20日)。桁数を確認しましょう。
開発での使いどころ
- APIレスポンス:多くのWeb APIが時刻をUnix時間で返します
- データベース:時刻を整数で保存する際に使われます
- 期限・有効期限:トークンの有効期限などをUnix時間で比較します
- ログ解析:ログのタイムスタンプを目視で確認するときに変換が必要です
Unix時間を変換する手順
Tools HubのUnix時間変換ツールを使えば、10桁・13桁のどちらも、日本時間とUTCの両方で瞬時に変換できます。
Unix時間を入力
10桁(秒)または13桁(ミリ秒)のタイムスタンプを入力します。
日時を確認
日本時間とUTCの両方で日時が表示されます。
逆変換も利用
日時からUnix時間を求める逆変換にも対応しています。
この記事で紹介したツール
Unix時間変換ツール
10桁・13桁の相互変換、日時からの逆変換に対応。ブラウザ内で完結します。
Unix時間変換のまとめ
- Unix時間は1970年1月1日(UTC)からの経過秒数
- 10桁=秒、13桁=ミリ秒(1000倍の違い)
- タイムゾーンは表示時の問題(値自体はUTC基準)
- API・DB・ログ解析で頻繁に使われる
- Tools Hubの変換ツールならブラウザだけで完結
開発中にUnix時間変換が必要になったら、この記事の手順かTools HubのUnix時間変換ツールを活用してください。
よくある質問
Unix時間とは何ですか?
1970年1月1日0時0分0秒(UTC)からの経過秒数(またはミリ秒数)で時刻を表す方式です。プログラムやAPIで広く使われています。
10桁と13桁の違いは何ですか?
10桁は秒単位、13桁はミリ秒単位です。13桁は10桁の1000倍の値になります。JavaScriptのDate.now()は13桁、PHPのtime()は10桁を返します。
タイムゾーンはどう扱えばいいですか?
Unix時間自体はUTC基準です。日本時間で表示したい場合は+9時間します。変換ツールは日本時間とUTCの両方を表示します。
日時からUnix時間を求めることはできますか?
はい。ツールの逆変換機能を使うと、指定した日時からUnix時間を計算できます。