Unsmear: Convert to and from timescales with smeared leap seconds
github.com
github.com
I must admit my own personal bias in this matter, because I am in the process of implementing a GNSS receiver that very much cares about both the speed and phase of time. It seems that the computing industry would rather define the second based the mean solar day of Earth's rotations, despite the rest of the world defining it to be the number of shakes of a Cesium atom partway down Earth's gravity well.
But instead of slaving their clocks to the international system that actually measures the mean solar day (UT1R), they decided to muck with both the speed and phase of time. For just one 24 hour period. Every once in a while.
If I was king for a moment, and could pronounce just one edict it would be this: To transmit UT1R's offset in the GPS C/NAV message, and demand that the NTP timebase slaves itself to that.
NTP can be configured to do it: https://docs.ntpsec.org/latest/leapsmear.html
Support for this is growing more popular with time, rather than less.
How about we use actual correct seconds instead and get rid of the whole business?
We don't?
Hang on, the number of shakes should be the same regardless of where you are in a gravitational well.
Civil time is therefore already partly divorced from the SI second due to this effect. Why not divorce it the rest of the way?
I'd say that this component has probably much better support than any of those "officially supported" Google products. Not wanting to blame Google for this though, they have billions of customers and providing good customer support for them would be insanely expensive.
Why not instead use a correct second?
My satellite is synchronized to TAI via GPS time.
I coordinate with a third party who manages the ground-based radio to coordinate contacts with my satellite system.
If something goes wrong, it would be nice to compare the logs from the three systems after a contact to see which node thought what was going on.
The fact that one or two of those systems gets its time from a not-UTC source makes this problem harder than it needs to be.