メインコンテンツへ
技術用語

UNIX タイムスタンプ

ゆにっくすたいむすたんぷ

定義

UNIX タイムスタンプ (UNIX time, POSIX time, Epoch time) は、1970 年 1 月 1 日 00:00:00 UTC (UNIX エポック) からの経過秒数で時刻を表す方式です。タイムゾーンやサマータイムの影響を受けない絶対的な時刻表現であり、コンピュータシステム間の時刻同期やデータベースでの時刻保存に広く使われています。

形式と範囲

従来の 32 ビット符号付き整数で表現する場合、最大値は 2,147,483,647 (2038 年 1 月 19 日 03:14:07 UTC) です。これを超えるとオーバーフローが発生する「2038 年問題」が知られています。時刻を 64 ビット整数で保持していれば実用上この上限には当たりませんが、組み込み機器や古いファイル形式・ライブラリには 32 ビットの時刻表現が残っている場合があります。

実用上の注意点

UNIX タイムスタンプはうるう秒を計上しない取り決めのため、厳密には UTC と 1 対 1 に対応しません。うるう秒が挿入された瞬間、UNIX タイムスタンプは同じ値を 2 秒間保持するか、前後の時間帯に薄く分散させる (smearing) 処理が行われます。Google と AWS は、それぞれ公開している技術文書の中で、自社の NTP 時刻配信でうるう秒をスミアリング方式で処理すると説明しています (2026 年 9 月時点)。また、秒とミリ秒のどちらの単位で値を受け渡すかは API や言語ごとに異なるため、システム間で連携する際は単位を明示し、1000 倍のずれを防ぐ必要があります。

この記事は役に立ちましたか?

関連用語

関連記事