24:00 versus 23:59:59--insights

Nathan Stratton Treadway nathanst at ontko.com
Tue Apr 28 16:36:03 UTC 2009

On Tue, Apr 28, 2009 at 07:50:02 -0400, Olson, Arthur David (NIH/NCI) [E] wrote:
> There are a few places with rules such as "... lastFri 0:00 ..." that
> should be "... lastThu 24:00 ..."
> One possibility is to rewrite the rules that way; doing so buys error
> messages from pre-1998 versions of zic.
> Another possibility is to rewrite the rules as "... lastThu 23:59:59
> ..." which works with pre-1998 versions of zic but is a second off. A
> third way is to use 24:00 and, where it is used, include a comment about
> either upgrading zic or using the 23:59:59 dodge. I'd appreciate any
> insights on how to go forward.

I'm not someone who would be affected personally by any of these
changes, but it seems to me that 10+ years is long enough to wait before
making use of the "24:00" notation, support for which presumably was
added to zic precisely for this situation.

Am I correct that the binary zoneinfo files compiled by more recent
versions of "zic' could still be used by older versions of the timezone
runtime?  If that's true, it definitely seems reasonable to ask people
still running pre-1998 versions of zic on some machine to find a newer
machine to use for generating their zoneinfo files (assuming they don't
want to just upgrade zic on the old machine for whatever reasons).

Even if the zoneinfo files aren't compatible, it still seems fair enough
ask those few (presumably) people still running such old versions to
work around these entries so that the rest of the user population
can benefit from having the "correct" definitions.    

(Putting comments explaining the situation certainly makes sense.)

On Tue, Apr 28, 2009 at 07:53:39 -0400, Olson, Arthur David (NIH/NCI) [E] wrote:
> Yet another possibility is to add a special case to zic to treat
> instances of 23:59:59 as if they were 24:00; this lets us use 23:59:59
> in input files to make pre-1998 versions of zic happy and to get
> correct-to-the-second results out of post-2009 versions of zic.

The downside is that 1998-through-2008 versions of zic would be a second
off, while all those versions would be correct we just went ahead and
switched to using "24:00". 

This special treatment could also come back to haunt us if some
government ever decided to make 23:59:59 an actual transition time....

(It also seems less than ideal to have different versions of zic
producing different output from the same input files....   I don't know
if that situation has ever occured before [due to bugfixes, etc.], but
it seems wise to avoid the situation if we have a choice.)

To me it seems better to ask that people who really need to use pre-1998
versions of zic do some sort of preprocessing on their input files than
to require everyone else to upgrade zic (or do their own preprocessing)
to get correct transitions for the time zones in question.  


Nathan Stratton Treadway  -  nathanst at ontko.com  -  Mid-Atlantic region
Ray Ontko & Co.  -  Software consulting services  -   http://www.ontko.com/
 GPG Key: http://www.ontko.com/~nathanst/gpg_key.txt   ID: 1023D/ECFB6239
 Key fingerprint = 6AD8 485E 20B9 5C71 231C  0C32 15F3 ADCD ECFB 6239

More information about the tz mailing list