leap seconds

Civil time is based on fixed-length atomic seconds for scientific purposes, but the Earth does not turn at a steady rate.

To keep clocks synchronized with the turning of the Earth, the International Earth Rotation and Reference Systems Service (IERS) occasionally adds one second to or removes one second from the end of a day. When a second is added it is known as a leap second.

I feel that leap seconds are a good compromise between the need of science for the length of a second to be fixed and the need of civil timekeeping for clocks that match the days and the seasons. Some people, however, feel that the burden of dealing with leap seconds is too great, and would like to abolish them. To resist this, I have developed a software package which makes dealing with leap seconds easier.

You can find the source tarball for libtime on GitHub under the ShowControl project at https://github.com/ShowControl/libtime. For RPM-based distributions of GNU/Linux such as Fedora the source RPM is at the same location and in addition the library can be installed from COPR using johnsauter / libtime. Also, the source tarball can be built from files embedded in the PDF file at “Avoid Using POSIX time_t for Telling Time”.

Because the rotation of the Earth is irregular, it is not possible to predict the next leap second far in advance. This makes for a guessing game: when will the next leap second be? At the time of this writing, in February of 2026, it looks like the next leap second will be on December 31, 2047 and it will be a positive leap second. Here is an illustration of that prediction:

In the above chart, UTC is time as measured by an atomic clock, and UT1 is the rotation of the Earth. The line shows the difference between them, with the part from 1973 to the present being the values measured and reported to the IERS, the part from the present to a year from now being the future values estimated by the IERS, and the part more than a year in the future being values projected further into the future. When a leap second is introduced the line jumps by one second. The IERS data in this chart was last updated by the IERS on February 12, 2026.

It is clear from the historical data displayed above that the IERS declares a leap second when UT1−UTC is between −0.2 and −0.7 seconds, though recently the interval has been from −0.4 to −0.7 seconds. I predict that the next leap second will be on December 31, 2047, when I project the value of UT1−UTC to be about −0.586 seconds. Other reasonable dates for the next leap second are shown in the table below. A leap second when UT1−UTC is positive will be a negative leap second, and a leap second when UT1−UTC is negative will be a positive leap second.

Predicted values of UT1-UTC assuming no leap seconds
dateUT1-UTC in seconds
June 30, 20280.216
December 31, 20280.307
June 30, 20290.352
December 31, 20290.455
June 30, 20300.480
December 31, 20300.554
June 30, 20310.572
December 31, 20310.639
June 30, 20320.652
December 31, 20320.711
June 30, 20330.717
December 31, 20330.770
June 30, 20340.770
December 31, 20340.816
June 30, 20350.809
December 31, 20350.849
June 30, 20360.836
December 31, 20360.869
June 30, 20370.849
December 31, 20370.875
June 30, 20380.849
December 31, 20380.869
June 30, 20390.835
December 31, 20390.849
June 30, 20400.770
December 31, 20400.733
June 30, 20410.641
December 31, 20410.592
June 30, 20420.488
December 31, 20420.426
June 30, 20430.310
December 31, 20430.236
June 30, 2046−0.298
December 31, 2046−0.377
June 30, 2047−0.506
December 31, 2047−0.586
June 30, 2048−0.717
December 31, 2048−0.799
June 30, 2049−0.930

I predict the next leap second by running an algorithm over the UT1−UTC data as reported by the IERS or estimated using astronomical observations in the past and predictions and projections in the future. For details, including a table of leap seconds from the year −2000 to the year 2500, see “Extending Coordinated Universal Time to Dates Before 1972”.