The NTP Epoch: 1900 and the 2036 Rollover

Published: April 5, 2026 | Category: Digital Timekeeping

Network Time Protocol (NTP) is the invisible backbone that synchronizes clocks across the entire internet. Developed by David L. Mills in the mid-1980s, NTP uses one of the oldest digital epochs in common use today: January 1, 1900.

The Zero Point: Jan 1, 1900

While Unix (1970) and GPS (1980) look forward from the late 20th century, NTP counts seconds starting from the very beginning of the 1900s. This choice was made to provide a wide range of representable time that could cover both historical data and future predictions.

64-Bit Precision

An NTP timestamp is composed of 64 bits. The first 32 bits represent the number of seconds since the epoch, and the second 32 bits represent the fractional parts of a second. This allows for a theoretical precision of about 232 picoseconds (much smaller than the time it takes for light to travel a single millimeter).

The Year 2036 Rollover

Because the first 32-bit field is used for seconds, it has a maximum value of 4,294,967,295. When you add that many seconds to January 1, 1900, you arrive at February 7, 2036.

On that day, the 32-bit NTP second counter will "rollover" to zero. This is very similar to the famous Unix Y2K38 problem, but it happens two years earlier. Developers are already working on "Era" numbers and 128-bit timestamp formats for NTPv5 to ensure that network synchronization doesn't fail when this milestone is reached.

NTP vs. Unix Time

Converting between NTP and Unix time is a standard task for many network applications. Because Jan 1, 1900, is exactly 70 years before Jan 1, 1970, the offset between the two scales is exactly 2,208,988,800 seconds.

Specifically:

  • Unix Time = NTP Time - 2,208,988,800
  • NTP Time = Unix Time + 2,208,988,800

This massive offset is why you'll often see large numbers in raw network packets—numbers that seem "out of place" to those accustomed only to the Unix 1970 epoch.