The Year 2038 Problem

At 2038-01-19 03:14:07 UTC, signed 32-bit Unix time reaches its maximum value of 2,147,483,647 seconds. One second later, systems still storing time in a 32-bit time_t wrap around to 1901-12-13 20:45:52.

Time remaining until 231 − 1
until 2038-01-19T03:14:07Z

Unix time right now, as a signed 32-bit integer

seconds — the red bit is the sign bit. When it flips, the date becomes 1901.

Epoch milestones

SecondsUTC dateWhatWhen

Who is actually affected?

Modern 64-bit operating systems already use a 64-bit time_t, which is good for about 292 billion years. The remaining risk lives in embedded systems, old 32-bit firmware, file formats and databases that serialized a 32-bit timestamp, and protocols with 32-bit time fields. Linux gained full 64-bit time_t support on 32-bit architectures in kernel 5.6 (2020), and Debian completed its 64-bit time transition in 2025 — but the long tail of routers, meters, vehicles and industrial controllers deployed today will still be running in 2038.

Related trivia: unsigned 32-bit time runs out in 2106, NTP’s 32-bit seconds rolled over in 2036’s era boundary, and JavaScript’s Number can represent exact milliseconds until the year 287396. We’ll worry about that one later.