Year 2038 Problem. Live Countdown to the 32-Bit Overflow
At 03:14:07 UTC on January 19, 2038, a signed 32-bit seconds counter has nowhere left to count, it wraps around to 1901. This page counts down to that instant, live.
The Year 2038 problem, live.
When the seconds-since-1970 counter overflows 32 bits, signed 32-bit clocks roll over to 1901. This countdown shows exactly how much room is left.
00000
days
00
hours
00
minutes
00
seconds
- 32-bit maximum
- 2,147,483,647
- overflow moment (UTC)
- —
- current epoch seconds
- —
- headroom
- —
Updating every second, in your browser (no timers on a server, no network calls.
The math behind the overflow
A signed 32-bit integer holds values from -2,147,483,648 to
2,147,483,647. Unix time is seconds since 1970, so the counter can
represent every second up to 2,147,483,647, which is
2038-01-19 03:14:07 UTC. One second later the counter wraps to
-2,147,483,648, which reads as 1901-12-13 20:45:52 UTC.
The same arithmetic bug as Y2K, just on a 32-bit integer instead of a two-digit year.
Who is actually affected
-
Legacy embedded systems, industrial controllers, routers, and
IoT devices still compiled with 32-bit
time_tand never updated. - Old file systems and firmware, ext2/ext3-style 32-bit on-disk timestamps, FAT timestamps on embedded storage, and NTP-firmware variants that store seconds in 32 bits.
-
Databases with 32-bit epoch columns, anything storing
INTepoch seconds instead ofBIGINTor a real date type. -
Modern platforms are safe, every mainstream OS and language
runtime moved
time_tto 64 bits years ago, so macOS, Windows, Linux, iOS, and Android apps are unaffected. The risk is the software nobody rebuilt.
The boundary, worked through
2,147,483,647→ Jan 19, 2038 03:14:07 UTC, the last valid second.2,147,483,648→ wraps to −2,147,483,648 → Dec 13, 1901, the bug, in one line.1,000,000,000→ Sep 9, 2001 01:46:40 UTC, a third of the way there, historically.- In hex the boundary is neat:
0x7FFFFFFFis the maximum, and the wrap lands on0x80000000.
How to check your own systems
- Linux:
getconf LONG_BITtells you the pointer size;date +%sshows the live counter. 64-bit systems display it fine. - Code review: search for
time_t,int32_tepochs, and%lddate prints in C/C++. - Databases: look for integer columns holding epoch seconds, they should be 64-bit or a native timestamp type.
First published · Last reviewed · Maintained and developed by the Real Epoch Converter team · Email · Contact · Methodology
The overflow, in context
The 2038 limit is one boundary among several that this site documents:
- What is Unix time — why the year 2038 matters
- Common Unix timestamps — including the 2038 boundary value
- Bug 6: the 32-bit overflow and its cousins
- Timestamp unit detection — digit-count boundaries
- Unix timestamp to date — paste 2147483647 and watch the wall
- Unix hex — the 0x7FFFFFFF boundary in binary terms