Many people will remember how, ahead of the year 2000, the whole world was on edge about the “millennium bug.” The worry was that programs that wrote years with only two digits might mistake 2000 for 1900. But in the world of computers, another, similar date problem still remains. It is the “Year 2038 Problem.”
Put simply, the Year 2038 problem refers to the phenomenon in which computers that count time as a number of seconds can no longer correctly represent moments after January 19, 2038. It happens because the slot that holds the number has a fixed size, and in English it is also nicknamed Y2K38 or the “Epochalypse,” a blend of epoch and apocalypse.
In this article, we will look in turn at how computers count time, how the Year 2038 problem arises, cases that have already appeared and the devices at risk, and the solutions that have been prepared so far.
The Day the Clock Runs Backward: The Year 2038 Problem
How Do Computers Count Time?

We write dates as year, month and day, but many computers remember time as a single large number.
(1) Unix time
Unix-like operating systems and the countless systems influenced by them take 00:00:00 on January 1, 1970 (Coordinated Universal Time) as their starting point and express time by counting how many seconds have passed since then. This method is called “Unix time,” and the starting point is called the “Unix epoch.”
(2) The advantage of a single number
When time is reduced to a single number, the interval between two moments can be found with one subtraction, and it is easy to store and compare. That is why this method came to be used everywhere time is needed, such as file creation times, log records and scheduled tasks.
(3) A slot of fixed size
The problem is the slot that holds this number. For a long time, many systems stored Unix time in a “signed 32-bit integer,” and the largest number this slot can hold is 2,147,483,647.
How the Year 2038 Problem Arises

If you keep adding to a slot of fixed size, sooner or later there comes a moment when it overflows.
(1) The last second
The moment when 2,147,483,647 seconds have passed since 1970 is 3:14:07 a.m. on January 19, 2038, in Coordinated Universal Time, or 12:14:07 p.m. the same day in Korea Standard Time. That is the very last moment a 32-bit slot can represent.
(2) Overflow and a flipped sign
Add one more second, and the number overflows the slot, changing the sign bit at the very front. This is called “integer overflow,” and the value that was the largest positive number instantly becomes the smallest negative number.
(3) A clock sent back to 1901
Time that has become negative is interpreted as the past, before the epoch. As a result, the system mistakenly believes it is December 13, 1901, and functions that calculate with dates can behave erratically.
The difference is that whereas the millennium bug arose from writing years as two decimal digits, the Year 2038 problem arises from storing time in a 32-digit binary slot.

Cases That Have Already Appeared and Devices at Risk

The year 2038 has not arrived yet, but problems have already surfaced in programs that calculate dates far in the future.
- Web server timeout (AOLserver): In May 2006, a web server program set the deadline for requests that were “never supposed to end” to one billion seconds in the future, and when that deadline passed 2038, the calculation went wrong and the server stalled.
- Mail server New Year’s bug (Exchange Server): On January 1, 2022, Microsoft’s mail server software handled update numbers as 32-bit numbers, and when the value exceeded the limit, its malware scanning feature stopped working.
- Long-lived embedded devices (Embedded Systems): Devices that, once installed, are used for decades and rarely updated, such as car braking systems, routers and network cameras, are seen as the biggest concern.
Of course, not every device is at risk. Devices that do not need dates, or that only calculate the difference between two moments, may not run into serious problems.
How to Prevent the Year 2038 Problem

There is no silver bullet that fixes everything at once for the Year 2038 problem, so several methods are being used together.
(1) Widening the slot to 64 bits
The most widely used method is to expand the slot that holds time to 64 bits. That way, it takes about 292 billion years for an overflow to occur, making it effectively a clock without end. Most operating systems for 64-bit computers already use this approach.
(2) Fixing old 32-bit environments
Since version 5.6 in 2020, Linux has allowed 64-bit time to be used even on 32-bit devices, and operating systems such as NetBSD and OpenBSD moved to 64-bit time early on. However, changing the size of the slot can make it incompatible with existing programs, so it has to be done carefully.
(3) Checking in the time that remains
Even if the operating system changes, the problem remains if the programs or databases running on top of it still handle time as 32-bit numbers. That is why steady checks to find and fix old code and devices in advance are the surest preparation.
The Year 2038 problem shows that a very small design choice can come back decades later as a big task. We need to remember that even a slot that seems big enough for now will overflow someday as time piles up, and prepare in advance.
Knowing that today’s convenient choice can become tomorrow’s limit is the first step in designing systems that last.