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.
Worked examples
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.
Related tools
The countdown is a fixed instant, see it in any timezone with the
Unix timestamp to date converter (paste
2147483647), or reference the boundary in hex on the
Unix hex timestamp converter.
First published · Last reviewed · Maintained and developed by the Real Epoch Converter team · [email protected] · Contact · Methodology
More timestamp tools
- Epoch time converter — the free online epoch converter
- Unix timestamp to date converter
- Date to epoch converter
- Milliseconds to epoch converter
- Snowflake ID converter
- LDAP / Active Directory converter
- GPS time converter
- NTP timestamp converter
- .NET ticks converter
- Mac HFS+ timestamp converter
- Excel / OADate converter
- UUID v1 / v7 & ULID converter
- Chrome / WebKit converter
- Cocoa Core Data converter
- Timezone converter
- Day of the year converter
- ISO week number converter
- Unix hex converter
- Year 2038 countdown
- Common Unix timestamps
Need the plain Unix timestamp instead of this format? The epoch time converter on the home page converts dates to Unix timestamps and back — seconds, milliseconds, or microseconds — with batch conversion, and the Unix timestamp to date converter handles one value at a time.
Prefer reading? The guides explain Unix time, timestamp formats, and common bugs in depth, and the methodology page documents exactly how this site handles negative timestamps, fractional seconds, leap seconds, and daylight-saving transitions.