コンピュータシステムが世界各地の分散サーバー間で時系列イベントを一意かつ狂いなく順序付けするためには、単調増加する絶対的な数値基準が不可欠です。その基礎標準がUnixエポック時間(Unixタイムスタンプ)です。
1. Unixエポックとは何か?
Unixエポックは、協定世界時(UTC)の1970年1月1日 午前0時0分0秒と定義されています。その瞬間から経過した秒数が、整数カウンターとして1秒ごとに加算され続けます。
2. 秒(10桁)とミリ秒(13桁)の違い
LinuxやPOSIXカーネルは時間を10桁の「秒」(例:1787610000)で管理します。一方、JavaScriptやJavaなどのアプリケーション実行基盤は13桁の「ミリ秒」(例:1787610000000)を用います。相互変換は1,000の乗算・除算で行われます。
3. タイムゾーンとISO 8601文字列表記
エポックタイムスタンプ自体には時差(タイムゾーン)の概念が存在せず、宇宙空間における絶対的な一時点を表します。JSTやESTといった時差表現は、ISO 8601形式(YYYY-MM-DDTHH:mm:ssZ)で画面表示する際にのみ適用されます。
4. 2038年問題(Y2038)の技術的真相
符号付き32ビット整数型で時間を保持するシステムは、2038年1月19日 03:14:07 UTCに上限の 2,147,483,647 秒に達してオーバーフローを起こし、負の数(1901年)へ巻き戻ります。現代の64ビット環境では約2920億年先まで安全に表現可能です。