創屋ぷれす

2038年問題

時刻の表現として1970年1月1日0時0分0秒からの経過秒数を使用しているシステムがあります。この経過秒数は符号付き32ビットのintで表現されているため、最大値が(2^31-1)=2,147,483,647となり、表現可能なのは2,147,483,647秒(≒68年)までに限られます。

なので、正しくカウントができるのは1970年1月1日0時0分0秒から2,147,483,647秒後の2038年1月19日3時14分7秒までであり、この時間を過ぎると値がオーバーフローして負の数値と扱われてしまいます。これによって、時刻を正しく扱えている前提のコードが誤作動を起こしてしまうのが2038年問題です。

 

Comments are closed.