On 2025-12-29 12:12, Guy Harris wrote:
On Dec 28, 2025, at 6:12 PM, Paul Eggert via tz <[email protected]> wrote:
/usr/share/zoneinfo/America/Los_Angeles
/usr/share/zoneinfo-leaps/America/Los_Angeles
and the latter file uses TAI.
"Uses TAI" in what sense?
The non-leap-second versions convert times represented as POSIX-style "seconds since the Epoch",
which means "seconds since 1970-01-01 00:00:00 UTC, adjusted such that positive leap seconds aren't
counted and additional seconds are added for negative leap seconds", to a local or UTC time
corresponding to that value, and convert a "struct tm" corresponding to a local time to a value of
that sort that would correspond to it.
The leap-second versions convert times represented as "seconds that have elapsed since
1970-01-01 00:00:00 UTC", perhaps really meaning "... following the introduction of leap
seconds" (not sure whether times before the introduction of the leap second would work down to
the second).
I'm not seeing whether either of those involve TAI. A clock that keeps TAI,
which I guess would mean a clock that, on the first second of 1970-01-01 at the
IERS Reference Meridian, would read 00:00:10, right?
Not exactly, as the date was 1972-01-01 not 1970-01-01. From 1961 to
1972 UTC was adjusted in two different ways: mostly via frequency
tweaking, but there were also small steps (what I would call "fractional
leap seconds"). Although there was "atomic time", TAI in the current
sense did not exist yet. The difference between "atomic time" and UTC
was a discontinuous piecewise linear function.
The "right" code ignores this mess entirely, and simply uses UTC before
1972. Like the "posix" code, it uses the somewhat-fuzzy "UT" for
timestamps before UTC was standardized in 1963.