[I will respond to all the comments, I am splitting up responses to make
it easier to manage.]
On 9/21/26 18:10, John Cowan wrote:
> 16. TAI-UTC should be 0 at the beginning of 1958 when the TAI scale
> began (even though UTC did not yet exist) and at all earlier times, and
> we should use dpk's table of factitious leap seconds to bridge the gap.
> (I'm not sure where that table is stored at present.) It's easy to
> prepend that table to the standard leap second table.
I did a bit of digging.
There is historical data for TAI-UTC going back to 1961[1, 2, 3]. If one
goes backwards from the first formula, you get a TAI-UTC of 0 on about
December 30th, 1957, or about the beginning of 1958 (the TAI-UTC
difference on January 1st, 1958, formally, is about 2 milliseconds).
This is because this is approximately the epoch of pre-TAI timescales:
the proper epoch of TAI-UTC is January 1st, 1961 [4]. TAI also didn't
exist formally until 1971: before that, it was A3, and before 1964 it
was something else [5].
Presumably one could create fake leap seconds by using historical data
(possibly combined with historical UT1-UTC data?) but that would be a
lot of effort for questionable gain, and it still wouldn't be correct
anyways. An implementation might be able to implement the actual
smoothing, which would be correct up to 1961, and the time difference
prior to 1961 would be fixed at the difference on January 1st, 1961
(near zero). That is also a lot of effort for questionable gain.
A bigger issue is that some software or protocols expect that TAI-UTC is
fixed at 10 prior to 1972 [6] or use TAI times before stabilization with
UTC [7]. However, a programmer could probably work around that by doing
conversions manually for times prior to 1972 for whatever
protocol/interface they implement.
In conclusion, I will probably just keep the implementation defined
behavior prior to 1972.
-- Peter McGoron
_______________
[1]: https://hpiers.obspm.fr/eoppc/bul/bulc/UTC-TAI.history
[2]: https://maia.usno.navy.mil/ser7/tai-utc.dat
[3]: James Barnes. "Basic concepts of time and frequency" pg. 8.
<https://tf.nist.gov/general/pdf/1593.pdf>
[4]: https://www.ucolick.org/~sla/leapsecs/taiepoch.html
[5]:
https://febo.com/pipermail/time-nuts_lists.febo.com/2019-October/098125.html
See also other responses in this thread.
[6]: https://cr.yp.to/daemontools/tai64n.html "The current
implementation of tai64n relies on the UNIX gettimeofday library routine
to return the current time as the number of TAI seconds since 1970-01-01
00:00:10 TAI."
[7]: https://cr.yp.to/libtai/tai64.html "the TAI second beginning
exactly 2^62 - s seconds before the beginning of 1970 TAIā¦"