Unix Epoch Time, and the Year 2038 Problem

Unix time, or Epoch time -- or Unix Epoch time, whatever you want to call it --, is the current global standard for storing date and time. It is simply an integer (non-decimal) number which has been counting up by 1 every second since 1/1/1970. Unix time is used in billions of devices and services around the world, hell, even my website uses it for the date you can see at the top of blog posts. Something that has achieved worldwide use such as this has to be flawless right? Unfortunately not. Unix time has a huge flaw, and it's coming up faster than you'd think. What I'm talking about is the Year 2038 Problem.

The Year 2038 Problem is a fundamental flaw in Unix Time, which will (logically) become known on January 19th, 2038. At this date, the 32 bit integer that stores the current Unix Time will overflow, looping the highest date possible for the format to the lowest (Sometime in 1901) at best, and crashing millions of devices irrepairably at worst. Personal computers, schedulers, city bus planners, banking applications, and more all rely on this method that is doomed to failure in less than 21 years.

There are solutions that exist, for example, most modern 64 bit devices (like newer phones and laptops) utilize a 64 bit signed integer variable for Unix Time, which will give us a new cap of December 4th, 292277026596. That's a bit more time. What that doesn't solve however, is the millions of devices running in a 32 bit architecture, which are incapable of having integers of that size. Another solution, which would extend the limit to the beginning of the 22nd century, would be to convert the variable to an unsigned integer, meaning that it can only have positive variables. Other problems arise from that though, like the inability to store dates from before 1/1/1970, which would have been stored in the negative numbers.

Another idea would be to to continue using the original variable so that the negative integer that Unix Time will be looped to become 2038, and continue like normal, although that would be abandoning all hope for pre-2038 variables. It seems that we cannot work around and patch our own short-sightedness. At this point my recommended plan of action would be to begin converting over everything we can to 64 bit integers, to minimize the damage once we reach that inevitable date, and once we're done that, sit back and wait to watch the carnage. I'll go get my lawn chair.

April 21st 2017