UNIX系OSや、Cで開発されたアプリケーションの抱える時限爆弾の一つ。
UNIXの日時管理は、1970年1月1日00:00:00を基準(これをThe Epochという)とし、その時間からの経過秒数で扱っている。なお、この経過秒数に閏秒は含まれない。
この経過秒数は32ビットで表現されるが、符号を考慮すると有効桁は31ビットしかない。そのため「1970年1月1日 00:00:00 + 0x7fffffff秒より後が表現できない」という問題を抱える事となった。
即ち、2038(平成50)年1月19日12:14:07(日本時間)(@176)までしか表現できないことを意味している。
UNIXでは、Cのtime_t型を順次64ビット(有効桁63ビット)などに延長するように改良されている。
MS-DOSやMicrosoft WindowsのようにOS側に問題がなくても、Cのtime_t型がsigned long intで定義されている場合には同様の問題を生じる。