[ntp:questions] POSIX Timestamp to NTP Timestamp

Matt Davis mattdavis9 at gmail.com
Tue Sep 28 12:40:46 UTC 2010


I am having some trouble converting a POSIX UTC timestamp into a NTP timestamp.
The former being from the epoch starting January 1, 1970 at 12AM and the latter
being that of January 1 1900 12AM.

In summary my equation is this:

/* Seconds between 1970 and 1900 (with 17 leap years) */
uint64_t epoch_difference = (365 + 17) * 24 * 60 * 60;

uint64_t ntp_timestamp = (time(NULL) - epoch_difference) << 32;

Unfortunately, when I interpret this value, I keep getting values in 2036.  I
know my version of time() is from the 1970 epoch.  So I am a tad confused here.

-Matt



More information about the questions mailing list