西暦2038年問題

2038年問題

UNIX環境では、システム内部の時刻をグリニッジ標準時(GMT)1970年1月1日0時0分0秒からの経過秒数で保持しているが、経過秒数で表す時刻データに、4バイトの符号付き整数を使っている場合に、本来数字の正負を判断するために使う部分まで時刻を表示するために使わざるを得なくなり、C言語を使って開発したシステムをUNIX環境で利用している場合に、グリニッジ標準時の2038年1月19日3時14分8秒を過ぎると、システムが正しく時刻を認識できなくなる問題の俗称。2004年1月11日に、日本IBMが開発したソフトを使っていた23の銀行でATM(現金自動預払機)が一部の取引で正常に利用できなくなるトラブルが発生し、このソフトの内部にある時刻の数値を2倍に足し合わせる処理が、ちょうど1970年と2038年1月19日の2分の1を超えた2004年1月11日の朝から、「西暦2038年問題」が顕在化して、システムが正常に稼動しなくなったことが原因であったことが判明した。 2038年問題に対応するため、各 UNIXシステムの新しいバージョンでは 時刻を64ビット幅で取り扱うよう修正するようになっている。KDDIは2004年3月5日に、2004年1月10日から2月25日までに「001」をダイヤルして利用する国内電話サービスなどで西暦2038年問題が発生し、国内電話サービスなどの一部で休日割引きが適用されないために料金誤請求4万5866件、料金誤請求額約1346万円が発生したと発表し、タイでの国際ローミングサービスでも誤請求が発生し、2003年8月18日から2004年1月14日の間に、タイでの国際ローミングサービスでも誤請求が発生し、KDDIが調査したところ、3616人に対して、総額1467万円を過剰請求していたことが判明した。詳細情報はURL(http://www.au.kddi.com/news/au_top/information/au_info_20040305114959.html)で知ることができる。