2038年問題

提供: MonoBook
ナビゲーションに移動 検索に移動

2038年問題とは、2038年に「16ビットの修正ユリウス通日」と「32ビットのUNIX時刻」がオーバーフローするという2種類の問題の総称です。この2つは異なる問題ですがどちらも2038年問題と呼ばれています。

16ビットの修正ユリウス通日[編集 | ソースを編集]

修正ユリウス通日を日付の表現に採用している処理系の多くは、そのデータ長に16ビットを用いており、16ビットで表せる整数の最大値である65535(0xFFFF)になる2038年4月22日を超えるとオーバーフローが発生してしまうという問題です。

修正ユリウス通日はリソースに乏しいワンチップマイコンなどの組込機器で多く採用されている形式であり、書き換えもパソコンほど容易ではないと言われています。状況としては年数の表現をグレゴリオ暦の下二桁のみで表していたことによる2000年問題に近いものと言われています。

32ビットのUNIX時刻[編集 | ソースを編集]

32ビットのUNIX時刻も2038年1月19日3時14分7秒(閏秒を考慮しない場合)にオーバーフローするという問題を抱えています。

UNIX時刻は主に高性能なコンピューターで使われているものなので修正は簡単そうに見えますが、そもそもメンテナンスできる技術者が既にいないなどの問題があるようです。そんなシステムさっさと捨てましょう。