The documentation is in zic.8.txt.
I share your confusion. If Paul (Eggert's) description is right, then I have to ignore the TO field in some circumstances which are entirely unclear to me. I would much rather see the TO field corrected. That is, if TO=1942 is ignored, and 1945 is the real date, then the line should be corrected to TO=1945.
There are other failures in the parsing. My error messages are:
??? Format too short: '' under Europe/Amsterdam;
??? Format too short: 'S' under Europe/Amsterdam;
??? Format too short: '' under Europe/Moscow;
??? Format too short: 'S' under Europe/Moscow;
I looked into why this is happening, and found:
Zone Europe/Amsterdam 0:19:32 - LMT 1835
0:19:32 Neth %s 1937 Jul 1
But the first LETTER/S defined by Neth is in 1916, so during the range from 1835 to 1916 this is undefined. If the LETTER/S are magically also defined *before* the first FROM, that should be described in the specification.
Mark
BTW, the documentation was a first a bit confusing to me, since it says that fields are delimited by spaces, and lists a single Zone UNTIL field. However, if you look carefully at the documentation, there are really 4 fields:
UNTIL_YEAR UNTIL_IN UNTIL_ON UNTIL_AT
which are optional [but only in "truncation" from the end: that is, it corresponds to the (Perl) regex (UNTIL_YEAR (UNTIL_IN (UNTIL_ON (UNTIL_AT)?)?)?)?].
I'm not the only one to have initially made this mistake: the proposed XML format for the TZ database makes the same mistake.
Then I'm confused. At the end of 1942, that rule should expire, because
of the "only" leaving what rule in effect? Apparently none, leaving the
time in 1943 undefined.
Where can I find a explanation of the tz text database format?
Thanks,
++PLS
-----Original Message-----
From: tz-request@elsie.nci.nih.gov [mailto: tz-request@elsie.nci.nih.gov]
On Behalf Of Paul Eggert
Sent: Wednesday, September 27, 2006 9:29 AM
To: tz@lecserver.nci.nih.gov
Subject: Re: Question on abbreviations
"Mark Davis" < mark.davis@icu-project.org > writes:
> According to the spec, TO = "only" is equivalent to saying that the TO
value
> equals the FROM value.
Yes, that's what's happening here. The rule to switch to DST applies
only in 1942. There is no rule to switch _out_ of DST in 1942, so DST
continues until 1945, the next rule that applies.
>> Rule NAME FROM TO TYPE IN ON AT SAVE
LETTER/S
>> > ...
>> > Rule US 1942 only - Feb 9 2:00 1:00 W #
War
>> > Rule US 1945 only - Aug 14 23:00u 1:00 P
#