pythondatetimetimeleap-second

How many seconds elapsed since 01/01/1970, leap-seconds included?


The Unix timestamp given by:

int(time.time())

gives the number of seconds elapsed since 01/01/1970, without leap-seconds.

Just out of curiosity, how to get the true number of seconds elapsed since this date, leap-seconds included? (i.e. the distance between these two events on a time axis)

Notes:


Solution

  • The number of SI seconds between any two UTC timestamps since 1972-01-01 requires access to the list of leap seconds which have been introduced into UTC. This list is available as part of the IANA tzdata distribution and it can also be obtained from other sources.

    Caution is required because the number of SI seconds between what was known as 1970-01-01 and 1972-01-01 is 2x365x24x60x60 + 1.999918 SI seconds because at 1970 the official time was determined not by cesium atoms but by actually measuring the rotation of the earth, so the official seconds were mean solar seconds not SI seconds.