UNIX タイムスタンプ
ゆにっくすたいむすたんぷ
UNIX タイムスタンプは 1970 年 1 月 1 日 00:00:00 UTC からの経過秒数で時刻を表現する方式です。
にせんさんじゅうはちねんもんだい
2038 年問題 (Year 2038 problem、Y2K38) は、UNIX タイムスタンプを 32 ビット符号付き整数で格納しているシステムが、2038 年 1 月 19 日 03:14:07 UTC に最大値 (2,147,483,647) に達し、次の秒でオーバーフローして負の値 (-2,147,483,648) に巻き戻る問題です。これは 1901 年 12 月 13 日として解釈されます。
64 ビット OS が主流の現代では、多くのシステムは既に対応済みです。しかし、組み込みシステム (IoT デバイス、産業機器、自動車の ECU)、レガシーなファイルフォーマット (ext3 のタイムスタンプ)、古いデータベーススキーマ、32 ビットのまま放置されたライブラリなどにリスクが残っています。
根本的な解決策は、タイムスタンプの格納を 64 ビット整数に移行することです。64 ビットでは約 2920 億年分の秒数を表現でき、実用上の上限はありません。Linux カーネルは 5.6 (2020 年) で 32 ビットシステムでも 2038 年以降の日時を扱えるよう対応しました。アプリケーション開発者は、使用しているライブラリやデータベースが 64 ビットタイムスタンプに対応しているか確認し、必要に応じて移行を計画すべきです。
この記事は役に立ちましたか?
ゆにっくすたいむすたんぷ
UNIX タイムスタンプは 1970 年 1 月 1 日 00:00:00 UTC からの経過秒数で時刻を表現する方式です。
えぽっく
エポック (epoch) とは、時刻系の基準となる起点のことで、UNIX エポック (1970 年 1 月 1 日 00:00:00 UTC) が最も広く使われています。
あいえすおー はちろくまるいち
ISO 8601 は、日付と時刻の表記に関する国際規格で、2026-05-15T16:00:00+09:00 のような形式でタイムゾーン情報を含む曖昧さのない日時表現を定義します。