[tz] Some rules in tz specification files seem to be applied (by zic) outside of their declared period of applicability

Brian Inglis Brian.Inglis at SystematicSw.ab.ca
Thu Jan 17 19:35:04 UTC 2019

On 2019-01-16 19:10, Parsifal Herzog wrote:
> On 2019-01-16 4:41 a.m., Michael H Deckers wrote:
> Before I do that, perhaps it would be helpful if you know the context
> in which my question arose: I have a program which parses the
> Olsen Tz data base textual specification, and produces time tables,
> as does zic. The context is in handling worldwide historical dates
> and times, so that other issues such as Gregorian/Julian transitions
> need to be accounted for.

> Recently there have been changes to the zone file specifications,
> such as negative dst and times, so while changing my program to
> accommodate these, I noticed that it was inserting standard time
> transitions in periods where no applicable zone Rule existed.

> In this specific case I am using, I am asking: Where in the
> timezone specification of the Africa/Windhoek zone is it written
> that the abbreviation is changed from "SAST" to "CAT" as of
> Wed Mar 21 1990?

> As I interpret the zic manual page, the Zone line
>     2:00    -    SAST    1990 Mar 21 # independence
> Specifies that as of 1990 Mar 21, midnight, the gmtoffset = 2:00,
> dst save = 0, and the timezone abbreviation = SAST, is no longer
> in effect. As of that time, the next Zone line:
>         2:00    Namibia    %s
> comes into effect. This specifies that the gmtoffset shall be 2 hours,
> as of 1990 March 20 midnight, and that from that time onwards, one or
> more of the rules named "Namibia" will be applied according to their
> respective periods of applicability to determine changes of
> dst offset and timezone abbreviation, and when they will occur.

> Here again, for this example, are all of those rules:
> Rule    Namibia    1994    only    -    Mar    21          0:00 -1:00    WAT
> Rule    Namibia    1994    2017    -    Sep    Sun>=1      2:00  0       CAT
> Rule    Namibia    1995    2017    -    Apr    Sun>=1      2:00 -1:00    WAT
> As I read it, according to the zic manual page, NONE of these rules apply to the
> years 1990 through 1993. So the dst offset and abbreviation are undefined in
> those years. Yet zic, by some unspecified logic, has chosen the second rule,
> and entered the transition (according to zdump):
> Africa/Windhoek  Tue Mar 20 22:00:00 1990 UT =
>             Wed Mar 21 00:00:00 1990 CAT isdst=0 gmtoff=7200

> So, what is this (so its seems to me) unspecified logic?
> This might read something like:
>     During a time period where there is no applicable rule,
>     the dst offset shall be ____
>     and the time zone abbreviation shall be _____.
> Where _____ is the answer I am looking for.

The rearguard format fills in the blanks for non-zic compliant processors, but
it appears that zic looks at the next rule for the same STD/DST offset or state
and uses that abbreviation.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.

More information about the tz mailing list