[time-nuts] Leap Quirks

Magnus Danielson magnus at rubidium.dyndns.org
Sun Jan 4 00:49:35 UTC 2009


Chuck Harris skrev:
> Poul-Henning Kamp wrote:
>> In message <495FD637.5030105 at erols.com>, Chuck Harris writes:
>>
>>> Ok, that is news to me.  Are you saying that (pulling a number out of
>>> the air) time_t = 21120123 could be followed by 21120123 on a year where
>>> we added a leap second?
>> Apart from the number, that is exactly what happens: The last
>> second of the (UTC) day is recycled twice.
> 
> As far as I remember, and as far as I can tell, what you are saying
> violates both the unix and POSIX definition of time_t.
> 
> So to check, I pulled out both of my K&R editions of "The C programming Language"
> and I did a quick google on time_t, and all of the sources I have found
> concur that time_t is the number of seconds since 1/1/1970 UTC without
> regard to leap seconds.
> 
> When did this change?

Depends on which interpretation of POSIX you are making... how you "fit" 
your UTC time onto the POSIX scale.

This page can serve as some aid in that puzzle:
http://www.cis.udel.edu/~mills/leap.html

If you want POSIX midnight to fit UTC midnight, then a piece-wise 
mapping must be maintained.

Another way would be to just keep POSIX time as SI seconds (or UTC 
rubber until 1972 and SI from there on, which is more practical if you 
care about details) and solve the UTC issue "outside" the core. Which is 
fine too.

Cheers,
Magnus




More information about the Time-nuts_lists.febo.com mailing list