Epoch Time Explained (and the Year 2038 Problem)
"Epoch time," "Unix time," and "POSIX time" all mean the same thing: seconds elapsed since the Unix epoch of January 1, 1970, UTC.
Why 1970?
The choice is historical. Unix was being developed around 1970 at Bell Labs, and the engineers picked the start of that decade as a convenient zero point. It stuck, and now it underpins almost every computer system on Earth.
How it's stored
Epoch time is an integer counting seconds. To represent dates before 1970, the number simply goes negative.
0 → 1970-01-01 00:00:00 UTC
1700000000 → 2023-11-14 22:13:20 UTC
-86400 → 1969-12-31 00:00:00 UTC
The Year 2038 problem
Older systems store epoch time in a signed 32-bit integer. The maximum value, 2,147,483,647, is reached at 03:14:07 UTC on January 19, 2038. One second later, the integer overflows and wraps to a negative number — interpreting the time as December 1901.
This is the "Y2038" or "Unix Millennium" bug. It threatens embedded systems, old databases, and legacy code.
The fix
Move to 64-bit timestamps, which won't overflow for roughly 292 billion years. Most modern operating systems and languages have already done this — the risk lives in old embedded and legacy systems.
Explore it
See how epoch values map to dates with the timestamp converter, and read what is a Unix timestamp for the basics.
Got a config file to check?
Open the config toolkit →