The 2038 Problem

The 2038 Problem relates to the Unix Time. The Unix Time is the number of seconds passed since January 1st, 1970. The Unix Time is stored as a signed 32-bit number. This means it would cover the range of around 136 years. The minimum represented time is Friday, December 13, 1901 and the maximum time is Tuesday, January 19, 2038. To be more precise, the maximum time is at 03:14:07 UTC on Tuesday, January 19, 2038. The maximum seconds since January 1st, 1970 is 2,147,483,647.

What exactly happens when Unix Time overflows?

If the Unix Time goes beyond 2,147,483,647 seconds, there will be an integer overflow which would mean that the time will be stored as a negative number and it will be read as December 13, 1901. Here is an animation that shows how this happens.

Binary:

Decimal:

Date:

Which devices all over the world are affected by the 2038 Problem?

In some newer operating systems, it has been widened to 64 bits which covers around 293 billion years. Embedded systems will most likely be affected by this 2038 problem. So this means transportation such as airplanes and automobiles will be affected. Communication devices such as phones will also be affected. File systems, binary file formats, and databases will also encounter the 2038 problem.

Is there a solution to the 2038 Problem yet?

Unfortunately, there is no known solution to the 2038 Problem yet. If the data type time_t is expanded to 64 bits instead of the 32 bits, there would be incompatibilty issues.