Overview All dates in UTC

One second.
A different century.

On 19 January 2038, seconds since the Unix epoch stop fitting in a signed 32-bit integer. The calendar keeps moving. The representation runs out.

2³¹ − 1

Signed 32-bit time

Within signed 32-bit range
32-bit memorySign bit   /   31 value bits

Stored signed 32-bit value
2,147,483,647
Requested date
32-bit interpreted date

Both representations preserve these seconds. The leading bit determines the sign of the 32-bit value.

Same seconds, stored in 64 bits2,147,483,647

Two's-complement wrap model, not a prediction for every system.Full simulator

It's a limit, not a date bug.

Unix time counts seconds from 1 January 1970. In a signed 32-bit representation, one bit contributes the sign and the remaining 31 bits constrain the positive range.

231 - 1 = 2,147,483,647

That final positive second is 2038-01-19 03:14:07 UTC. One more second is outside the range.

What could be affected?

Software, stored data, protocols, and embedded devices that still rely on signed 32-bit timestamps. A modern computer can still run old code with a narrow time representation.

Failures vary: rejected dates, incorrect comparisons, bad scheduling, or other undefined behavior. This lab shows one familiar wrapping model, not a universal crash.

GNU: avoiding the year 2038 problem

Until the boundary

19 January 2038 · 03:14:08 UTC

Calculating...

Counters have run out before.

Timing failures, capacity limits, and the evidence behind them.