メインコンテンツへ
技術規格

2038 年問題

にせんさんじゅうはちねんもんだい

定義

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 ビットタイムスタンプに対応しているか確認し、必要に応じて移行を計画すべきです。

XB!LINE

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

関連用語

関連記事