What Should We Expect In 2038?!
The Year 2038 Problem is a programming error that may cause important computer software to fail before the year 2038. The event affects all software that store system time as a signed 32-bit integer. These systems interpret time as the number of seconds since Thursday January 1, 1970 and the furthest time that can be represented this way is 03:14:07 UTC on Tuesday, January 19, 2038. All times beyond this moment will wrap around and be stored internally as a negative number, which will cause these 32-bit integer systems to interpret the date as 1901, rather than 2038. This will create erroneous calculations and system failure. Most all 32-bit Unix-like systems store and manipulate time in this format, called Unix time. For this reason, the year 2038 problem is often referred to as the Unix Millennium Bug.
The AOL server software experienced a Unix time problem in 2006 when it was discovered that their server default configuration was set to time out after one billion seconds or approximately 32 years. This caused the system to overflow and return a date that was in the past, ultimately crashing the AOL server. The company was able to fix the problem by editing the configuration file to set the time out to a lower value. However, this was only a temporary fix for AOL. There is currently no straightforward and general solution for the 2038 Unix time problem for existing CPU and operating system combinations. This makes the problem much more serious than the Y2K year 2000 event, in which computer programmers were able to update their systems to avoid failure.
In dealing with the 2038 problem, you can’t simply change the definition of the time data type to a 64-bit setting without breaking binary compatibility for the software. You also can’t change time to an unsigned 32-bit integer without crashing the system. Hundreds of millions of 32-bit systems are deployed around the world. Many of these programs are in important government owned embedded software, which simply can’t be replaced by 2038. Additionally, 32-bit applications running on 64-bit systems are likely to be affected by the issue. Some alternative proposals have been suggested, including storing time in either milliseconds or microseconds. However, to date, no clear solution has been agreed upon and the event remains a strong concern all over the world.