Vzic indicates missing tz rules
I've been using 'vzic' (http://dialspace.dial.pipex.com/prod/dialspace/town/pipexdsl/s/asbm26/vzic/) to convert tz data to iCal. vzic 1.3 issues the following - hopefully self-explanatory warnings when run against tz/2006p: ----------------- andy@zanzibar:~/packages/vzic-1.3$ ./vzic --pure WARNING: Couldn't find a LETTER_S to use in FORMAT: C%sT in Zone: Asia/Macau Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: TM%sT in Zone: Asia/Ashgabat Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: CE%sT in Zone: Europe/Warsaw Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: WE%sT in Zone: Atlantic/Azores Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: Y%sT in Zone: America/Nome Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: M%sT in Zone: America/Inuvik Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: P%sT in Zone: America/Whitehorse Leaving TZNAME empty WARNING: Couldn't find a LETTER_S to use in FORMAT: P%sT in Zone: America/Dawson Leaving TZNAME empty andy@zanzibar:~/packages/vzic-1.3$ ----------------- (this is a slightly modified version of vzic - see below; the '--pure' option is not important). Following through in tz for America/Inuvik, we see: ----------------- # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S ... Zone America/Inuvik -8:54:52 - LMT 1884 -8:00 NT_YK P%sT 1979 Apr lastSun 2:00 -7:00 NT_YK M%sT 1980 -7:00 Canada M%sT ----------------- Significantly, America/Inuvik is defined explicitly from the 1800's onwards, but the rule NT_YK is defined only from 1918, hence this missing 'LETTER/S'. Similar issues affect America/Whitehorse and America/Dawson. America/Nome uses the rule 'US' from 1943 to 1946, although the rule isn't defined for most of that period. Spot-checking the other problem zones indicates similar problems. I've exchanged a few e-mails with the developer of vzic; he pointed out that vzic works around most of the above 'problem' zones (see line 899 of vzic_output.c, v1.3); I commented out the workaround to derive the above output. With the workaround, vzic warns on Inuvik, Whitehorse and Dawson only. Andy
Andy McDonald <andy_tz@stemhaus.com> writes:
Rule NT_YK 1918 only - Apr 14 2:00 1:00 D Rule NT_YK 1918 only - Oct 27 2:00 0 S ...
Zone America/Inuvik -8:54:52 - LMT 1884 -8:00 NT_YK P%sT 1979 Apr lastSun 2:00
In situations like these, zic assumes that standard time is in effect before the first Rule line takes affect, so it uses the first standard-time rule letter it sees. At least, that's my understanding -- I haven't looked at the code recently.
participants (2)
-
Andy McDonald -
Paul Eggert