Hello Brooks;

On 2016-12-28 12:33, Brooks Harris wrote:


On 2016-12-26 08:28 PM, Tony Finch wrote:
Brooks Harris<[email protected]>  wrote:
The time_t 1970 epoch is fixed with respect to internal POSIX calculations,
but it "slips" a second with respect to UTC with each (positive) Leap Second
introduction because "23:59:60" goes missing.
"Slip" makes it sound like a retrospective change in the relationship
between UTC and time_t, with the scales sliding against each other, but it
doesn't change - there's a fixed relationship between UTC second labels
and time_t second labels, which remains the same however many leap seconds
there are. In fact time_t is defined in terms of that relationship, and
"seconds since the epoch" is just a simplified gloss.
Hi Tony,

"Slip" might not be the best term, but the effective alignment between time_t and UTC changes with each Leap Second.

POSIX "the epoch" origin, time_t = zero, is said to be coincident with "1970-01-01 00:00:00 UTC".

The YMDhms count progression across the first Leap Second (1972-06-30T23:59:60 (UTC)) as yielded by POSIX gmtime() is expected to be

time_t gmtime()                UTC
78796799 = 1972-06-30 23:59:59 = 1972-06-30T23:59:59 (UTC)
78796800 = 1972-07-01 00:00:00 = 1972-06-30T23:59:60 (UTC) << Leap Second
78796800 = 1972-07-01 00:00:00 = 1972-07-01T00:00:00 (UTC) << time_t reset
78796801 = 1972-07-01 00:00:01 = 1972-07-01T00:00:01 (UTC)

time_t must be reset after the Leap Second to maintain the alignment of the POSIX and UTC YMDhms representations. In effect the time_t origin has become coincident with "1972-01-01 00:00:00 UTC plus one Leap Second", or "1972-01-01 00:00:01 UTC". As David Mills says "... In effect, a new timescale is reestablished after each new leap second."

The NTP Timescale and Leap Seconds
3. How NTP and POSIX Reckon with Leap Seconds
https://www.eecis.udel.edu/~mills/leap.html

[ As discussed on the list many times, POSIX's use of the term "UTC" in describing "the epoch" as "1970-01-01 00:00:00 UTC" is troublesome because it lies before 1972-01-01T00:00:00 (UTC) in the "rubber band era", the development period of TAI and UTC when the TAI-UTC offset was not integral seconds. The name of the timescale and the TAI-UTC values during that span is somewhat controversial. In any event, as a practical matter, the origin of POSIX "the epoch" is usually taken to mean 63072000 seconds
That should be 63072010 seconds (730 days x 86400 plus 10 seconds)
-Stephen
before 1972-01-01 00:00:10 (TAI) = 1972-01-01T00:00:00 (UTC) ].


-Brooks

Tony.



_______________________________________________
LEAPSECS mailing list
[email protected]
https://pairlist6.pair.net/mailman/listinfo/leapsecs



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
LEAPSECS mailing list
[email protected]
https://pairlist6.pair.net/mailman/listinfo/leapsecs

Reply via email to