Time to Retire the Leap Second

On December 31st, 2016, we added another leap second. The leap second seems to make sense just like leap years but it’s very different.

To put it simply, there is absolutely no need for leap seconds and there is absolutely no excuse for saying that some minutes are longer or shorter than sixty seconds. That’s akin saying that some squares are not quite square because it makes life a little easier for some carpenters.

Without leap seconds, we may need to do an extra daylight hour every 5000 years for those who care that the sun is above them at lunchtime. In return, any student who answers “how long is two minutes” by saying 120 seconds is wrong. There is no getting around that given leap seconds.

Leap seconds are very much like the Y2K crisis in being a consequence of a problematic choice of representation. The reason that no planes fell out of the sky during the Y2K transition is that modern computers don’t use hours, minutes and seconds (HMS) as their representation. They store time in the number of seconds (and fractions of a second) from a base time called the epoch. This is also true for the standard TAI (atomic) time scale.

When astronomers aim a telescope at a star they need additional information such as where they are as well as the current time. The rotational speed of a planet also varies so there is a need to measure the actual speed. The telescope may not even be on Earth — would we have leap seconds on Mars?

For today’s computers, this is all simple enough. If we need time for a particular purpose, we can compute it from TAI plus any additional information. This is simple enough for those who care. And for the 99.9999% (approximately) of the applications that don’t care they needn’t be bothered.

So why do we have leap seconds?

For day to day use people represent time in hours, minutes and seconds. Once upon a time a second was defined as 1/86400 of a day. Today we define a second in terms of the vibrations of Cesium atoms. As precision of time measurements improved astronomers found that the earth rotation varied and the length of a day varied from the high precision measurements by a few thousandths of a second.

This hardly seems like a big deal for civil purposes. This was well-understood in the 19th century with the introduction of time zones. Instead of defining noon as the time the sun was directly overhead, the earth was defined into 24 (or so) zones because trains had created a need to coordinate with people far away. Being able to agree on a shared train schedule was far more important than the precise position of the sun.

For applications that require high precision we have TAI time plus other information for that purposes. For civil uses, such as keeping appointments, we have a straightforward conversion from TAI to local time of day in terms of a well-defined 60 second minute.

Again, so why leap seconds?

Perhaps because some junior programmers don’t understand representation and presentation so when it was deemed necessary to have a precise clock for navigation purposes it was assumed that this precision would require tying the hour, minute and second notation to use the high precision time (UT1) rather than continuing to use TAI. A half century ago we were all junior programmers.

It’s time to recognize that the leap second is bug. It means that it is impossible to convert time intervals because a minute has been defined 60 seconds! Period. You can’t say all minutes are equal but some or more equal (OK, longer) than others nor can you say that there are extra seconds that are not part of minutes. And even if you did know which minute in the past you don’t know when leap seconds will be inserted in the future.

And there is nothing special about the precise position of the sun on earth compared with other correction factors. At least nothing that our descendants in 5000 years won’t be able to handle very easily.

Leap seconds may seem acceptable because of false analogies to leap years. Leap years make a difference with a few dozen years while leap seconds address a problem that will take thousands of years and, even then, will simply be a minor annoyance. This is one reason we have not defined months and days as constant length and we take that into account when we record dates. We can’t precisely convert 10,000 days to year without knowing the starting date.

While providing no benefits, leap seconds wreak havoc:

  • Banks and other institutions shut down their computers across leap seconds.
  • The varied attempts to maintain spurious precision works against the idea of being precise because the awkward attempts to deal with leap seconds leads to confusion. Google for example slews time changes across servers.
  • Computers, especially personal computers, don’t even bother with leap seconds because they don’t really matter. This means that you can’t trust any computer time stamp because you don’t know what (or if any) adjustments were made. In fact, standard databases simply cannot represent leap seconds.
  • When computers do try to handle the leap second, we get bugs. Cloudflare ran into problems with their DNS due leap second which confused their code.
  • It is impossible to do time interval calculation because they require knowing the length of a minute. Again, you cannot undefine the minute. It is a definition not an observation.
  • Networks and other systems that require precise synchronization are at risk if the two end points don’t use precisely the same time. Having to convert be-tween HMS notation and number of seconds TAI/UT1 means that there is a risk the two sides won’t agree on the precise time in seconds.
  • A date stamp such as March 1, 2035 may return February 28, 2035 when viewed in the future if leap seconds are added. Or maybe not if the database program doesn’t care. And most don’t! It’s this very imprecision that makes it possible to maintain the delusion of high precision!
  • Standalone programs (like electronic spreadsheets) cannot possibly take into account leap seconds because the information isn’t available on the day they ship!
  • @PhilKarn posted comments about problems with leap seconds in Linux.

I could go on but the point is that there is no need for this. For most purposes, we can declare the leap second dead.

For those applications that care we can declare the period from 1972 to 2017 as the age of uncertainty and accept that any time in that period is indeterminant. And then start to apply negative leap seconds every three months till we have moved on. That would extend the age of confusion out to 2027 or so but at least we’ll be able to move on.

Leap seconds are a result of assuming there is one kind of time and that astronomers are the experts because they used to operate sundials. This is not true. Astronomers are users of time just like those of us who need to make appointments with other people.

Astronomers don’t need to use civil time notation as their base representation. TAI (atomic time) and civil time (train schedule time) serve very different purposes. There is no need try to make civil time track the sun.

Fifty years ago we adopted a format on computers much like TAI. And the good news is that a minute is still sixty seconds.