Unixタイムスタンプと日時を相互に変換します。ログの解析、APIレスポンスの確認、データベースの値のチェックに使えます。
Unixタイムとは
1970年1月1日00:00:00 UTC からの経過秒数で時刻を表す方式です。タイムゾーンの影響を受けない絶対的な値のため、システム間で時刻をやり取りするときに使われます。
秒単位が基本ですが、JavaScript は ミリ秒単位(13桁)を使います。桁数を見れば、どちらの単位かを判断できます。
10桁 → 秒単位(一般的なUnix時間) 13桁 → ミリ秒単位(JavaScriptのDate.now())
2038年問題
符号付き32ビット整数でUnix時間を扱うシステムでは、2038年1月19日を超えると値があふれて誤動作する可能性があります。現在の多くのシステムは64ビットに移行済みですが、古い組み込み機器では今も注意が必要です。
使いどころ
- サーバーログのタイムスタンプを読む
- APIのレスポンスに含まれる時刻を確認する
- JWTの exp(有効期限)を確認する
- データベースに保存された値の検証
ログを読むときのコツ
サーバーのログはUTCで記録されていることが多く、日本時間とは9時間ずれます。障害の発生時刻を照合するときは、必ずタイムゾーンをそろえてください。
「9時間ずれた時刻の記録が見つからない」という場合、実は正しく記録されていて、タイムゾーンの解釈だけが違っていることがよくあります。
よくある質問
Q Unix時間の基準はいつですか?
1970年1月1日00:00:00 UTC です。この時点からの経過秒数で表します。
Q 10桁と13桁の違いは?
10桁は秒単位、13桁はミリ秒単位です。JavaScriptのDate.now()は13桁を返します。
Q タイムゾーンはどう扱われますか?
Unix時間はUTC基準の絶対値です。表示する際に、お使いの端末のタイムゾーンで変換しています。
Q うるう秒は含まれますか?
Unix時間はうるう秒を数えない仕様です。1日を常に86,400秒として扱います。
