[tz] What's "right"?

Brooks Harris brooks at edlmax.com
Sat Nov 14 05:03:33 UTC 2020

On 2020-11-13 9:25 PM, Guy Harris wrote:
> On Nov 12, 2020, at 7:00 PM, Brooks Harris <brooks at edlmax.com> wrote:
>> See
>> IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
>> A.4 General Concepts
>> https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html
>> Section:
>> A.4.16 Seconds Since the Epoch
> Yes, I have - many times.  (Back when I was at Sun, the question of what to do with leap seconds was under discussion; Sun was trying to get leap second support to be allowed, but we lost that battle.)
>> I believe Joe Gwinn may have something to say about this section.
> I don't know about Joe Gwinn, but I *do* know that Doug Gwyn was pushing the ANSI C committee to allow tm_sec to be > 59; he was successful in doing so.
> But none of this addresses what I was discussing in the message to which you're responding, which is "can one speak of UTC for a date and time in 1970 and, if so, how does that relate to the current specification of UTC?"
> For what it's worth, the Wikipedia page for Coordinated Universal Time:
> says:
> 	The coordination of time and frequency transmissions around the world began on 1 January 1960. UTC was first officially adopted as CCIR Recommendation 374, Standard-Frequency and Time-Signal Emissions, in 1963, but the official abbreviation of UTC and the official English name of Coordinated Universal Time (along with the French equivalent) were not adopted until 1967.
> 	The system has been adjusted several times, including a brief period where the time-coordination radio signals broadcast both UTC and "Stepped Atomic Time (SAT)" before a new UTC was adopted in 1970 and implemented in 1972. This change also adopted leap seconds to simplify future adjustments. This CCIR Recommendation 460 "stated that (a) carrier frequencies and time intervals should be maintained constant and should correspond to the definition of the SI second; (b) step adjustments, when necessary, should be exactly 1 s to maintain approximate agreement with Universal Time (UT); and (c) standard signals should contain information on the difference between UTC and UT."
> Presumably 1970-01-01 00:00:00 UTC is in "the new UTC".
>> UTC1972 is the initial alignment point between TAI and UTC:
>> 441763210s (TAI) = 1972-01-01 00:00:10 (TAI) = 1972-01-01T00:00:00 (UTC)
>> The Posix "the epoch" is defined as 1970-01-01 00:00:00 (UTC), exactly 63072000 seconds (two years, 365 days x 2 = 730 days x 86400 seconds = 63072000s) before UTC1972, here called UTC1970.
> So that's 1970-01-01 00:00:00 (UTC, meaning "the new UTC, extended backwards to 1970, with no leap seconds added or removed prior to 1972").
That is my understanding, yes.

You have to be careful in these sorts of discussions. For purposes of 
civil time and computer timekeeping I might call this "Proleptic UTC", 
that is, as you say "extended backwards to 1970, with no leap seconds 
added or removed prior to 1972", and that this extension is treated in 
whole integral seconds. Thus:

378691210s (TAI) = 1970-01-01 00:00:10 (TAI) = 1970-01-01T00:00:00 (UTC) 
= Posix "the epoch"

While the Posix time specification is somewhat vague (and, as I 
understand it, *intentionally* vague to accommodate legacy systems) the 
NTP specification is more clear.


6.  Data Types
"   In the date and timestamp formats, the prime epoch, or base date of
    era 0, is 0 h 1 January 1900 UTC, when all bits are zero.  It should
    be noted that strictly speaking, UTC did not exist prior to 1 January
    1972, but it is convenient to assume it has existed for all eternity,
    even if all knowledge of historic leap seconds has been lost."

Thus NTP Era 0 is 2272060800s (72 years including leap years * 86400s) 
before UTC1972 (which is also before the TAI origin at 1958-01-01 
00:00:00 (TAI)):

-1830297600s (TAI) = 1900-01-01 00:00:10 (TAI) = 1900-01-01T00:00:00 (UTC)

David Mills explains this in some detail:
The NTP Timescale and Leap Seconds

Note, importantly, others concerned with high resolution timekeeping for 
other purposes, such as astronomy and geo-sciences where historical 
representations are critical, may insist that the term "Proleptic UTC" 
must include the small frequency and partial second adjustments made 
during the development period of atomic time and what became know as UTC 
from approx 1960 to the final unique adjustments that took effect on 
UTC1972 together with application of extrapolated leap-seconds derived 
from Delta T and other sources into the deep past.

As Steve Allen has said in this thread "The answer depends on the needs 
of the application.". I believe here we are concerned with "civil time 
and computer timekeeping" and thus constrained to using proleptic 
timescales in integral seconds.

More information about the tz mailing list