Unix タイムスタンプとは?
Unix タイムスタンプは、1970 年 1 月 1 日 00:00:00 UTC からの経過秒数です。タイムゾーンに関係なく、同じ瞬間なら東京でもロンドンでも同じ値になり、違うのは現地時刻での表示だけです。データベース、API、ログで時刻を記録するのによく使われます。
使い方
- 「タイムスタンプ → 日時」にタイムスタンプを貼り付けると、日時、ISO 8601、UTC、曜日、相対時間がすぐに表示されます。
- 「日時 → タイムスタンプ」に日時を入力すると、秒、ミリ秒、マイクロ秒、ナノ秒に変換されます。
- 上の「タイムゾーン」で、表示と変換に使うタイムゾーンを選びます。既定はお使いのコンピューターのタイムゾーンです。
秒・ミリ秒・マイクロ秒・ナノ秒の見分け方
桁数から自動で判別します。現在のタイムスタンプは秒なら 10 桁、ミリ秒なら 13 桁、マイクロ秒なら 16 桁、ナノ秒なら 19 桁です。JavaScript の Date.now() と Java の System.currentTimeMillis() はミリ秒、PHP の time() と Python の int(time.time()) は秒です。判別が違う場合は「単位」で指定してください。
例
タイムスタンプ 1700000000(秒)は、台北のタイムゾーン(UTC+8)では:
2023-11-15T06:13:20+08:00
UTC では:
2023-11-14T22:13:20Z
よくある質問
変換結果が 9 時間ずれるのはなぜ?
タイムスタンプ自体は UTC です。プログラムがそれを UTC のまま表示すると日本時間より 9 時間遅く見え、逆に日本時間を UTC として変換するとタイムスタンプが 9 時間進みます。上で選んだタイムゾーンを確認するか、日時の後ろに +09:00 や Z を付けてください。
ナノ秒の精度は保たれますか?
保たれます。JavaScript の数値が正確に表せるのは約 16 桁までなので、19 桁のナノ秒タイムスタンプはそのまま変換すると値が変わってしまいます。このツールは大きな整数で計算するため、ナノ秒の全桁を保持します。
1970 年より前の日時も入力できますか?
できます。1970 年より前のタイムスタンプは負の数で、たとえば -86400 は 1969-12-31 00:00:00 UTC です。
2038 年問題とは?
秒数を 32 ビットの符号付き整数で保存しているシステムは 2147483647、つまり 2038-01-19 03:14:07 UTC までしか表せず、それを過ぎるとオーバーフローして負の数になります。64 ビット整数やミリ秒を使えば回避できます。