proposed time zone package changes
Here are proposed time zone package changes, preceded by a list of files to be changed and reasons for the changes. If these pass muster, tzcode2009a.tar.gz and tzdata2009a.tar.tz will appear a week from today (on an unusual Wednesday since both Monday and Tuesday are leave days for U. S. federal employees in the Washington, D. C. area). --ado * asia change Katmandu to Kathmandu * backward provide Katmandu link * europe correct Swiss rules; add Europe/Geneva * northamerica clearer definition of Cuban transitions (no binary change) Resolute changes abbreviation (but not time) twice a year * strftime.c c format warning fix * tzselect.ksh --help and --version handling * zdump.c --help and --version handling * zic.c --help and --version handling fix infinite loop caused by overflow/optimization interaction * zone.tab Change Katmandu to Kathmandu Change Resolute from Eastern Time to Eastern Standard Time Add Europe/Geneva diff -r -c old/asia new/asia *** old/asia Wed Oct 8 08:35:57 2008 --- new/asia Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)asia 8.24 # <pre> # This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)asia 8.25 # <pre> # This data is by no means authoritative; if you think you know better, *************** *** 1474,1480 **** # Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Katmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time --- 1474,1480 ---- # Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time diff -r -c old/backward new/backward *** old/backward Tue Sep 9 22:33:26 2008 --- new/backward Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)backward 8.6 # This file provides links between current names for time zones # and their old names. Many names changed in late 1993. --- 1,4 ---- ! # @(#)backward 8.7 # This file provides links between current names for time zones # and their old names. Many names changed in late 1993. *************** *** 24,29 **** --- 24,30 ---- Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Chongqing Asia/Chungking Link Asia/Dhaka Asia/Dacca + Link Asia/Kathmandu Asia/Katmandu Link Asia/Kolkata Asia/Calcutta Link Asia/Macau Asia/Macao Link Asia/Jerusalem Asia/Tel_Aviv diff -r -c old/europe new/europe *** old/europe Tue Sep 9 22:33:25 2008 --- new/europe Wed Jan 14 13:37:27 2009 *************** *** 1,4 **** ! # @(#)europe 8.18 # <pre> # This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)europe 8.19 # <pre> # This data is by no means authoritative; if you think you know better, *************** *** 2313,2328 **** # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT # Turkey --- 2313,2384 ---- # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! # Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! # Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! # Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - ! ! # From Alois Treindl (2008-12-17): ! # I have researched the DST usage in Switzerland during the 1940ies. ! # ! # As I wrote in an earlier message, I suspected the current tzdata values ! # to be wrong. This is now verified. ! # ! # I have found copies of the original ruling by the Swiss Federal ! # government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss ! # federal law collection)... ! # ! # DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am ! # DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am. ! # ! # DST began on Monday, 4 May 1942 at 01:00 am ! # DST ended on Monday, 5 Oct 1942 at 02:00 am ! # ! # There was no DST in 1940, I have checked the law collection carefully. ! # It is also indicated by the fact that the 1942 entry in the law ! # collection points back to 1941 as a reference, but no reference to any ! # other years are made. ! # ! # Newspaper articles I have read in the archives on 6 May 1941 reported ! # about the introduction of DST (Sommerzeit in German) during the previous ! # night as an absolute novelty, because this was the first time that such ! # a thing had happened in Switzerland. ! # ! # I have also checked 1916, because one book source (Gabriel, Traite de ! # l'heure dans le monde) claims that Switzerland had DST in 1916. This is ! # false, no official document could be found. Probably Gabriel got misled ! # by references to Germany, which introduced DST in 1916 for the first time. ! # ! # The tzdata rules for Switzerland must be changed to: ! # Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - ! # ! # The 1940 rules must be deleted. ! # ! # One further detail for Switzerland, which is probably out of scope for ! # most users of tzdata: ! # The zone file ! # Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 ! # 0:29:44 - BMT 1894 Jun #Bern Mean Time ! # 1:00 Swiss CE%sT 1981 ! # 1:00 EU CE%sT ! # describes all of Switzerland correctly, with the exception of ! # the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not ! # follow Bern Mean Time but kept its own local mean time. ! # To represent this, an extra zone would be needed. ! ! # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S ! Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT + Zone Europe/Geneva 0:24:56 - LMT 1894 Jun # avoid GMT + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT # Turkey diff -r -c old/northamerica new/northamerica *** old/northamerica Tue Sep 9 16:05:43 2008 --- new/northamerica Wed Jan 14 12:32:15 2009 *************** *** 1,4 **** ! # @(#)northamerica 8.24 # <pre> # also includes Central America and the Caribbean --- 1,4 ---- ! # @(#)northamerica 8.26 # <pre> # also includes Central America and the Caribbean *************** *** 1742,1751 **** # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007).... - # - # America/Resolute should use the "Canada" Rule up to October 29/2006. - # After that it should be fixed on Eastern Standard Time until further notice. # 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 --- 1742,1755 ---- # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007).... + # From Chris Walton (2008-11-13): + # ...the residents of Resolute believe that they are changing "time zones" + # twice a year. In winter months, local time is qualified with "Eastern + # Time" which is really "Eastern Standard Time (UTC-5)". In summer + # months, local time is qualified with "Central Time" which is really + # "Central Daylight Time (UTC-5)"... + # 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 *************** *** 1772,1782 **** -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 - EST # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 --- 1776,1789 ---- -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES + Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 Resolute %sT # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 *************** *** 2280,2286 **** Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2006 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D --- 2287,2293 ---- Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D diff -r -c old/strftime.c new/strftime.c *** old/strftime.c Mon Sep 15 09:24:42 2008 --- new/strftime.c Wed Jan 14 12:33:56 2009 *************** *** 1,6 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.2"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". --- 1,6 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.3"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". *************** *** 216,222 **** { int warn2 = IN_SOME; ! pt = _fmt(Locale->c_fmt, t, pt, ptlim, warnp); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) --- 216,222 ---- { int warn2 = IN_SOME; ! pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) diff -r -c old/tzselect.ksh new/tzselect.ksh *** old/tzselect.ksh Tue Sep 9 22:33:17 2008 --- new/tzselect.ksh Wed Jan 14 10:56:24 2009 *************** *** 1,6 **** #! /bin/ksh ! # '@(#)tzselect.ksh 8.1' # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. --- 1,6 ---- #! /bin/ksh ! VERSION='@(#)tzselect.ksh 8.2' # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. *************** *** 45,50 **** --- 45,65 ---- exit 1 } + if [ "$1" = "--help" ]; then + cat <<EOF + Usage: tzselect + Select a time zone interactively. + + Report bugs to tz@elsie.nci.nih.gov. + EOF + exit 0 + elif [ "$1" = "--version" ]; then + cat <<EOF + tzselect $VERSION + EOF + exit 0 + fi + # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/zone.tab diff -r -c old/zdump.c new/zdump.c *** old/zdump.c Tue Sep 9 22:33:24 2008 --- new/zdump.c Wed Jan 14 11:01:56 2009 *************** *** 1,4 **** ! static char elsieid[] = "@(#)zdump.c 8.6"; /* ** This code has been made independent of the rest of the time --- 1,4 ---- ! static char elsieid[] = "@(#)zdump.c 8.8"; /* ** This code has been made independent of the rest of the time *************** *** 230,235 **** --- 230,246 ---- warned = TRUE; } + static void + usage(const char *progname, FILE *stream, int status) + { + (void) fprintf(stream, + _("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\ + \n\ + Report bugs to tz@elsie.nci.nih.gov.\n"), + progname, progname); + exit(status); + } + int main(argc, argv) int argc; *************** *** 266,271 **** --- 277,284 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(progname, stdout, EXIT_SUCCESS); } vflag = 0; cutarg = NULL; *************** *** 275,284 **** else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! (void) fprintf(stderr, ! _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), ! progname, progname); ! exit(EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { --- 288,294 ---- else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! usage(progname, stderr, EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { *************** *** 349,361 **** (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime) break; newt = t + SECSPERHOUR * 12; - if (newt >= cuthitime) - break; - if (newt <= t) - break; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; --- 359,367 ---- (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12) break; newt = t + SECSPERHOUR * 12; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; diff -r -c old/zic.c new/zic.c *** old/zic.c Tue Sep 9 22:33:18 2008 --- new/zic.c Wed Jan 14 10:59:48 2009 *************** *** 3,9 **** ** 2006-07-17 by Arthur David Olson. */ ! static char elsieid[] = "@(#)zic.c 8.17"; #include "private.h" #include "locale.h" --- 3,9 ---- ** 2006-07-17 by Arthur David Olson. */ ! static char elsieid[] = "@(#)zic.c 8.18"; #include "private.h" #include "locale.h" *************** *** 156,162 **** const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(void); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type); --- 156,162 ---- const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(FILE *stream, int status); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type); *************** *** 454,466 **** } static void ! usage(void) { ! (void) fprintf(stderr, _("%s: usage is %s \ ! [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"), ! progname, progname); ! exit(EXIT_FAILURE); } static const char * psxrules; --- 454,468 ---- } static void ! usage(FILE *stream, int status) { ! (void) fprintf(stream, _("%s: usage is %s \ ! [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\ ! \n\ ! Report bugs to tz@elsie.nci.nih.gov.\n"), ! progname, progname); ! exit(status); } static const char * psxrules; *************** *** 498,508 **** if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(); case 'd': if (directory == NULL) directory = optarg; --- 500,512 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(stdout, EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(stderr, EXIT_FAILURE); case 'd': if (directory == NULL) directory = optarg; *************** *** 561,567 **** break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) --- 565,571 ---- break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(stderr, EXIT_FAILURE); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) diff -r -c old/zone.tab new/zone.tab *** old/zone.tab Tue Oct 21 12:10:25 2008 --- new/zone.tab Wed Jan 14 13:40:29 2009 *************** *** 1,4 **** ! # @(#)zone.tab 8.21 # # TZ zone descriptions # --- 1,4 ---- ! # @(#)zone.tab 8.25 # # TZ zone descriptions # *************** *** 116,122 **** CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario --- 116,122 ---- CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Standard Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario *************** *** 136,142 **** CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations --- 136,143 ---- CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich most locations ! CH +4614+00604 Europe/Geneva Geneva only CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations *************** *** 292,298 **** NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations --- 293,299 ---- NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Kathmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations
I object to adding Geneva. The rule has always been to only add new IDs when they are distinct after Jan 1, 1970. This does not appear to meet that criterion. As a matter of fact, not so long ago some IDs were dropped precisely because they did not meet that criterion. (If we added any and all IDs without a cutoff date, we would have a disastrous blowup in the number of IDs.) Mark On Wed, Jan 14, 2009 at 10:51, Arthur David Olson <olsona@elsie.nci.nih.gov>wrote:
Here are proposed time zone package changes, preceded by a list of files to be changed and reasons for the changes. If these pass muster, tzcode2009a.tar.gz and tzdata2009a.tar.tz will appear a week from today (on an unusual Wednesday since both Monday and Tuesday are leave days for U. S. federal employees in the Washington, D. C. area).
--ado
* asia change Katmandu to Kathmandu
* backward provide Katmandu link
* europe correct Swiss rules; add Europe/Geneva
* northamerica clearer definition of Cuban transitions (no binary change) Resolute changes abbreviation (but not time) twice a year
* strftime.c c format warning fix
* tzselect.ksh --help and --version handling
* zdump.c --help and --version handling
* zic.c --help and --version handling fix infinite loop caused by overflow/optimization interaction
* zone.tab Change Katmandu to Kathmandu Change Resolute from Eastern Time to Eastern Standard Time Add Europe/Geneva
diff -r -c old/asia new/asia *** old/asia Wed Oct 8 08:35:57 2008 --- new/asia Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)asia 8.24 # <pre>
# This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)asia 8.25 # <pre>
# This data is by no means authoritative; if you think you know better, *************** *** 1474,1480 ****
# Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Katmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time
--- 1474,1480 ----
# Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time
diff -r -c old/backward new/backward *** old/backward Tue Sep 9 22:33:26 2008 --- new/backward Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)backward 8.6
# This file provides links between current names for time zones # and their old names. Many names changed in late 1993. --- 1,4 ---- ! # @(#)backward 8.7
# This file provides links between current names for time zones # and their old names. Many names changed in late 1993. *************** *** 24,29 **** --- 24,30 ---- Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Chongqing Asia/Chungking Link Asia/Dhaka Asia/Dacca + Link Asia/Kathmandu Asia/Katmandu Link Asia/Kolkata Asia/Calcutta Link Asia/Macau Asia/Macao Link Asia/Jerusalem Asia/Tel_Aviv diff -r -c old/europe new/europe *** old/europe Tue Sep 9 22:33:25 2008 --- new/europe Wed Jan 14 13:37:27 2009 *************** *** 1,4 **** ! # @(#)europe 8.18 # <pre>
# This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)europe 8.19 # <pre>
# This data is by no means authoritative; if you think you know better, *************** *** 2313,2328 **** # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT
# Turkey
--- 2313,2384 ---- # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! # Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! # Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! # Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - ! ! # From Alois Treindl (2008-12-17): ! # I have researched the DST usage in Switzerland during the 1940ies. ! # ! # As I wrote in an earlier message, I suspected the current tzdata values ! # to be wrong. This is now verified. ! # ! # I have found copies of the original ruling by the Swiss Federal ! # government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss ! # federal law collection)... ! # ! # DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am ! # DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am. ! # ! # DST began on Monday, 4 May 1942 at 01:00 am ! # DST ended on Monday, 5 Oct 1942 at 02:00 am ! # ! # There was no DST in 1940, I have checked the law collection carefully. ! # It is also indicated by the fact that the 1942 entry in the law ! # collection points back to 1941 as a reference, but no reference to any ! # other years are made. ! # ! # Newspaper articles I have read in the archives on 6 May 1941 reported ! # about the introduction of DST (Sommerzeit in German) during the previous ! # night as an absolute novelty, because this was the first time that such ! # a thing had happened in Switzerland. ! # ! # I have also checked 1916, because one book source (Gabriel, Traite de ! # l'heure dans le monde) claims that Switzerland had DST in 1916. This is ! # false, no official document could be found. Probably Gabriel got misled ! # by references to Germany, which introduced DST in 1916 for the first time. ! # ! # The tzdata rules for Switzerland must be changed to: ! # Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - ! # ! # The 1940 rules must be deleted. ! # ! # One further detail for Switzerland, which is probably out of scope for ! # most users of tzdata: ! # The zone file ! # Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 ! # 0:29:44 - BMT 1894 Jun #Bern Mean Time ! # 1:00 Swiss CE%sT 1981 ! # 1:00 EU CE%sT ! # describes all of Switzerland correctly, with the exception of ! # the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not ! # follow Bern Mean Time but kept its own local mean time. ! # To represent this, an extra zone would be needed. ! ! # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S ! Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT + Zone Europe/Geneva 0:24:56 - LMT 1894 Jun # avoid GMT + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT
# Turkey
diff -r -c old/northamerica new/northamerica *** old/northamerica Tue Sep 9 16:05:43 2008 --- new/northamerica Wed Jan 14 12:32:15 2009 *************** *** 1,4 **** ! # @(#)northamerica 8.24 # <pre>
# also includes Central America and the Caribbean --- 1,4 ---- ! # @(#)northamerica 8.26 # <pre>
# also includes Central America and the Caribbean *************** *** 1742,1751 **** # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007).... - # - # America/Resolute should use the "Canada" Rule up to October 29/2006. - # After that it should be fixed on Eastern Standard Time until further notice.
# 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 --- 1742,1755 ---- # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007)....
+ # From Chris Walton (2008-11-13): + # ...the residents of Resolute believe that they are changing "time zones" + # twice a year. In winter months, local time is qualified with "Eastern + # Time" which is really "Eastern Standard Time (UTC-5)". In summer + # months, local time is qualified with "Central Time" which is really + # "Central Daylight Time (UTC-5)"... + # 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 *************** *** 1772,1782 **** -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 - EST # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 --- 1776,1789 ---- -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES + Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 Resolute %sT # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 *************** *** 2280,2286 **** Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2006 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D --- 2287,2293 ---- Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D diff -r -c old/strftime.c new/strftime.c *** old/strftime.c Mon Sep 15 09:24:42 2008 --- new/strftime.c Wed Jan 14 12:33:56 2009 *************** *** 1,6 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.2"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". --- 1,6 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.3"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". *************** *** 216,222 **** { int warn2 = IN_SOME;
! pt = _fmt(Locale->c_fmt, t, pt, ptlim, warnp); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) --- 216,222 ---- { int warn2 = IN_SOME;
! pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) diff -r -c old/tzselect.ksh new/tzselect.ksh *** old/tzselect.ksh Tue Sep 9 22:33:17 2008 --- new/tzselect.ksh Wed Jan 14 10:56:24 2009 *************** *** 1,6 **** #! /bin/ksh
! # '@(#)tzselect.ksh 8.1'
# Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. --- 1,6 ---- #! /bin/ksh
! VERSION='@(#)tzselect.ksh 8.2'
# Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. *************** *** 45,50 **** --- 45,65 ---- exit 1 }
+ if [ "$1" = "--help" ]; then + cat <<EOF + Usage: tzselect + Select a time zone interactively. + + Report bugs to tz@elsie.nci.nih.gov. + EOF + exit 0 + elif [ "$1" = "--version" ]; then + cat <<EOF + tzselect $VERSION + EOF + exit 0 + fi + # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/zone.tab diff -r -c old/zdump.c new/zdump.c *** old/zdump.c Tue Sep 9 22:33:24 2008 --- new/zdump.c Wed Jan 14 11:01:56 2009 *************** *** 1,4 **** ! static char elsieid[] = "@(#)zdump.c 8.6";
/* ** This code has been made independent of the rest of the time --- 1,4 ---- ! static char elsieid[] = "@(#)zdump.c 8.8";
/* ** This code has been made independent of the rest of the time *************** *** 230,235 **** --- 230,246 ---- warned = TRUE; }
+ static void + usage(const char *progname, FILE *stream, int status) + { + (void) fprintf(stream, + _("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\ + \n\ + Report bugs to tz@elsie.nci.nih.gov.\n"), + progname, progname); + exit(status); + } + int main(argc, argv) int argc; *************** *** 266,271 **** --- 277,284 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(progname, stdout, EXIT_SUCCESS); } vflag = 0; cutarg = NULL; *************** *** 275,284 **** else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! (void) fprintf(stderr, ! _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), ! progname, progname); ! exit(EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { --- 288,294 ---- else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! usage(progname, stderr, EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { *************** *** 349,361 **** (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime) break; newt = t + SECSPERHOUR * 12; - if (newt >= cuthitime) - break; - if (newt <= t) - break; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; --- 359,367 ---- (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12) break; newt = t + SECSPERHOUR * 12; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; diff -r -c old/zic.c new/zic.c *** old/zic.c Tue Sep 9 22:33:18 2008 --- new/zic.c Wed Jan 14 10:59:48 2009 *************** *** 3,9 **** ** 2006-07-17 by Arthur David Olson. */
! static char elsieid[] = "@(#)zic.c 8.17";
#include "private.h" #include "locale.h" --- 3,9 ---- ** 2006-07-17 by Arthur David Olson. */
! static char elsieid[] = "@(#)zic.c 8.18";
#include "private.h" #include "locale.h" *************** *** 156,162 **** const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(void); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type);
--- 156,162 ---- const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(FILE *stream, int status); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type);
*************** *** 454,466 **** }
static void ! usage(void) { ! (void) fprintf(stderr, _("%s: usage is %s \ ! [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"), ! progname, progname); ! exit(EXIT_FAILURE); }
static const char * psxrules; --- 454,468 ---- }
static void ! usage(FILE *stream, int status) { ! (void) fprintf(stream, _("%s: usage is %s \ ! [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\ ! \n\ ! Report bugs to tz@elsie.nci.nih.gov.\n"), ! progname, progname); ! exit(status); }
static const char * psxrules; *************** *** 498,508 **** if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(); case 'd': if (directory == NULL) directory = optarg; --- 500,512 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(stdout, EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(stderr, EXIT_FAILURE); case 'd': if (directory == NULL) directory = optarg; *************** *** 561,567 **** break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) --- 565,571 ---- break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(stderr, EXIT_FAILURE); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) diff -r -c old/zone.tab new/zone.tab *** old/zone.tab Tue Oct 21 12:10:25 2008 --- new/zone.tab Wed Jan 14 13:40:29 2009 *************** *** 1,4 **** ! # @(#)zone.tab 8.21 # # TZ zone descriptions # --- 1,4 ---- ! # @(#)zone.tab 8.25 # # TZ zone descriptions # *************** *** 116,122 **** CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario --- 116,122 ---- CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Standard Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario *************** *** 136,142 **** CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations --- 136,143 ---- CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich most locations ! CH +4614+00604 Europe/Geneva Geneva only CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations *************** *** 292,298 **** NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations --- 293,299 ---- NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Kathmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations
This bounced the first time. Mark ---------- Forwarded message ---------- From: Mark Davis <mark.edward.davis@gmail.com> Date: Wed, Jan 14, 2009 at 18:10 Subject: Re: proposed time zone package changes To: tz@elsie.nci.nih.gov Cc: tz@lecserver.nci.nih.gov I object to adding Geneva. The rule has always been to only add new IDs when they are distinct after Jan 1, 1970. This does not appear to meet that criterion. As a matter of fact, not so long ago some IDs were dropped precisely because they did not meet that criterion. (If we added any and all IDs without a cutoff date, we would have a disastrous blowup in the number of IDs.) Mark On Wed, Jan 14, 2009 at 10:51, Arthur David Olson <olsona@elsie.nci.nih.gov>wrote:
Here are proposed time zone package changes, preceded by a list of files to be changed and reasons for the changes. If these pass muster, tzcode2009a.tar.gz and tzdata2009a.tar.tz will appear a week from today (on an unusual Wednesday since both Monday and Tuesday are leave days for U. S. federal employees in the Washington, D. C. area).
--ado
* asia change Katmandu to Kathmandu
* backward provide Katmandu link
* europe correct Swiss rules; add Europe/Geneva
* northamerica clearer definition of Cuban transitions (no binary change) Resolute changes abbreviation (but not time) twice a year
* strftime.c c format warning fix
* tzselect.ksh --help and --version handling
* zdump.c --help and --version handling
* zic.c --help and --version handling fix infinite loop caused by overflow/optimization interaction
* zone.tab Change Katmandu to Kathmandu Change Resolute from Eastern Time to Eastern Standard Time Add Europe/Geneva
diff -r -c old/asia new/asia *** old/asia Wed Oct 8 08:35:57 2008 --- new/asia Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)asia 8.24 # <pre>
# This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)asia 8.25 # <pre>
# This data is by no means authoritative; if you think you know better, *************** *** 1474,1480 ****
# Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Katmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time
--- 1474,1480 ----
# Nepal # Zone NAME GMTOFF RULES FORMAT [UNTIL] ! Zone Asia/Kathmandu 5:41:16 - LMT 1920 5:30 - IST 1986 5:45 - NPT # Nepal Time
diff -r -c old/backward new/backward *** old/backward Tue Sep 9 22:33:26 2008 --- new/backward Wed Jan 14 11:15:49 2009 *************** *** 1,4 **** ! # @(#)backward 8.6
# This file provides links between current names for time zones # and their old names. Many names changed in late 1993. --- 1,4 ---- ! # @(#)backward 8.7
# This file provides links between current names for time zones # and their old names. Many names changed in late 1993. *************** *** 24,29 **** --- 24,30 ---- Link Asia/Ashgabat Asia/Ashkhabad Link Asia/Chongqing Asia/Chungking Link Asia/Dhaka Asia/Dacca + Link Asia/Kathmandu Asia/Katmandu Link Asia/Kolkata Asia/Calcutta Link Asia/Macau Asia/Macao Link Asia/Jerusalem Asia/Tel_Aviv diff -r -c old/europe new/europe *** old/europe Tue Sep 9 22:33:25 2008 --- new/europe Wed Jan 14 13:37:27 2009 *************** *** 1,4 **** ! # @(#)europe 8.18 # <pre>
# This data is by no means authoritative; if you think you know better, --- 1,4 ---- ! # @(#)europe 8.19 # <pre>
# This data is by no means authoritative; if you think you know better, *************** *** 2313,2328 **** # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT
# Turkey
--- 2313,2384 ---- # mean time in preference to apparent time -- Geneva from 1780 .... # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # From Whitman (who writes ``Midnight?''): ! # Rule Swiss 1940 only - Nov 2 0:00 1:00 S ! # Rule Swiss 1940 only - Dec 31 0:00 0 - # From Shanks & Pottenger: ! # Rule Swiss 1941 1942 - May Sun>=1 2:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Sun>=1 0:00 0 - ! ! # From Alois Treindl (2008-12-17): ! # I have researched the DST usage in Switzerland during the 1940ies. ! # ! # As I wrote in an earlier message, I suspected the current tzdata values ! # to be wrong. This is now verified. ! # ! # I have found copies of the original ruling by the Swiss Federal ! # government, in 'Eidgen[o]ssische Gesetzessammlung 1941 and 1942' (Swiss ! # federal law collection)... ! # ! # DST began on Monday 5 May 1941, 1:00 am by shifting the clocks to 2:00 am ! # DST ended on Monday 6 Oct 1941, 2:00 am by shifting the clocks to 1:00 am. ! # ! # DST began on Monday, 4 May 1942 at 01:00 am ! # DST ended on Monday, 5 Oct 1942 at 02:00 am ! # ! # There was no DST in 1940, I have checked the law collection carefully. ! # It is also indicated by the fact that the 1942 entry in the law ! # collection points back to 1941 as a reference, but no reference to any ! # other years are made. ! # ! # Newspaper articles I have read in the archives on 6 May 1941 reported ! # about the introduction of DST (Sommerzeit in German) during the previous ! # night as an absolute novelty, because this was the first time that such ! # a thing had happened in Switzerland. ! # ! # I have also checked 1916, because one book source (Gabriel, Traite de ! # l'heure dans le monde) claims that Switzerland had DST in 1916. This is ! # false, no official document could be found. Probably Gabriel got misled ! # by references to Germany, which introduced DST in 1916 for the first time. ! # ! # The tzdata rules for Switzerland must be changed to: ! # Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! # Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - ! # ! # The 1940 rules must be deleted. ! # ! # One further detail for Switzerland, which is probably out of scope for ! # most users of tzdata: ! # The zone file ! # Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 ! # 0:29:44 - BMT 1894 Jun #Bern Mean Time ! # 1:00 Swiss CE%sT 1981 ! # 1:00 EU CE%sT ! # describes all of Switzerland correctly, with the exception of ! # the Cantone Geneve (Geneva, Genf). Between 1848 and 1894 Geneve did not ! # follow Bern Mean Time but kept its own local mean time. ! # To represent this, an extra zone would be needed. ! ! # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S ! Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S ! Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12 0:29:44 - BMT 1894 Jun # Bern Mean Time 1:00 Swiss CE%sT 1981 1:00 EU CE%sT + Zone Europe/Geneva 0:24:56 - LMT 1894 Jun # avoid GMT + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT
# Turkey
diff -r -c old/northamerica new/northamerica *** old/northamerica Tue Sep 9 16:05:43 2008 --- new/northamerica Wed Jan 14 12:32:15 2009 *************** *** 1,4 **** ! # @(#)northamerica 8.24 # <pre>
# also includes Central America and the Caribbean --- 1,4 ---- ! # @(#)northamerica 8.26 # <pre>
# also includes Central America and the Caribbean *************** *** 1742,1751 **** # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007).... - # - # America/Resolute should use the "Canada" Rule up to October 29/2006. - # After that it should be fixed on Eastern Standard Time until further notice.
# 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 --- 1742,1755 ---- # The individual that answered the phone confirmed that the clocks did not # move at the end of daylight saving on October 29/2006. He also told me that # the clocks did not move this past weekend (March 11/2007)....
+ # From Chris Walton (2008-11-13): + # ...the residents of Resolute believe that they are changing "time zones" + # twice a year. In winter months, local time is qualified with "Eastern + # Time" which is really "Eastern Standard Time (UTC-5)". In summer + # months, local time is qualified with "Central Time" which is really + # "Central Daylight Time (UTC-5)"... + # 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 *************** *** 1772,1782 **** -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 - EST # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 --- 1776,1789 ---- -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT # aka Qausuittuq + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + Rule Resolute 2006 max - Nov Sun>=1 2:00 0 ES + Rule Resolute 2007 max - Mar Sun>=8 2:00 0 CD Zone America/Resolute 0 - zzz 1947 Aug 31 # Resolute founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT 2006 Oct 29 2:00 ! -5:00 Resolute %sT # aka Kangiqiniq Zone America/Rankin_Inlet 0 - zzz 1957 # Rankin Inlet founded -6:00 NT_YK C%sT 2000 Oct 29 2:00 *************** *** 2280,2286 **** Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2006 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D --- 2287,2293 ---- Rule Cuba 1997 only - Oct 12 0:00s 0 S Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S ! Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D Rule Cuba 2006 max - Oct lastSun 0:00s 0 S Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D Rule Cuba 2008 max - Mar Sun>=15 0:00s 1:00 D diff -r -c old/strftime.c new/strftime.c *** old/strftime.c Mon Sep 15 09:24:42 2008 --- new/strftime.c Wed Jan 14 12:33:56 2009 *************** *** 1,6 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.2"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". --- 1,6 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)strftime.c 8.3"; /* ** Based on the UCB version with the ID appearing below. ** This is ANSIish only when "multibyte character == plain character". *************** *** 216,222 **** { int warn2 = IN_SOME;
! pt = _fmt(Locale->c_fmt, t, pt, ptlim, warnp); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) --- 216,222 ---- { int warn2 = IN_SOME;
! pt = _fmt(Locale->c_fmt, t, pt, ptlim, &warn2); if (warn2 == IN_ALL) warn2 = IN_THIS; if (warn2 > *warnp) diff -r -c old/tzselect.ksh new/tzselect.ksh *** old/tzselect.ksh Tue Sep 9 22:33:17 2008 --- new/tzselect.ksh Wed Jan 14 10:56:24 2009 *************** *** 1,6 **** #! /bin/ksh
! # '@(#)tzselect.ksh 8.1'
# Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. --- 1,6 ---- #! /bin/ksh
! VERSION='@(#)tzselect.ksh 8.2'
# Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. *************** *** 45,50 **** --- 45,65 ---- exit 1 }
+ if [ "$1" = "--help" ]; then + cat <<EOF + Usage: tzselect + Select a time zone interactively. + + Report bugs to tz@elsie.nci.nih.gov. + EOF + exit 0 + elif [ "$1" = "--version" ]; then + cat <<EOF + tzselect $VERSION + EOF + exit 0 + fi + # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/zone.tab diff -r -c old/zdump.c new/zdump.c *** old/zdump.c Tue Sep 9 22:33:24 2008 --- new/zdump.c Wed Jan 14 11:01:56 2009 *************** *** 1,4 **** ! static char elsieid[] = "@(#)zdump.c 8.6";
/* ** This code has been made independent of the rest of the time --- 1,4 ---- ! static char elsieid[] = "@(#)zdump.c 8.8";
/* ** This code has been made independent of the rest of the time *************** *** 230,235 **** --- 230,246 ---- warned = TRUE; }
+ static void + usage(const char *progname, FILE *stream, int status) + { + (void) fprintf(stream, + _("%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n\ + \n\ + Report bugs to tz@elsie.nci.nih.gov.\n"), + progname, progname); + exit(status); + } + int main(argc, argv) int argc; *************** *** 266,271 **** --- 277,284 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(progname, stdout, EXIT_SUCCESS); } vflag = 0; cutarg = NULL; *************** *** 275,284 **** else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! (void) fprintf(stderr, ! _("%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"), ! progname, progname); ! exit(EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { --- 288,294 ---- else cutarg = optarg; if ((c != EOF && c != -1) || (optind == argc - 1 && strcmp(argv[optind], "=") == 0)) { ! usage(progname, stderr, EXIT_FAILURE); } if (vflag) { if (cutarg != NULL) { *************** *** 349,361 **** (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime) break; newt = t + SECSPERHOUR * 12; - if (newt >= cuthitime) - break; - if (newt <= t) - break; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; --- 359,367 ---- (void) strncpy(buf, abbr(&tm), (sizeof buf) - 1); } for ( ; ; ) { ! if (t >= cuthitime || t >= cuthitime - SECSPERHOUR * 12) break; newt = t + SECSPERHOUR * 12; newtmp = localtime(&newt); if (newtmp != NULL) newtm = *newtmp; diff -r -c old/zic.c new/zic.c *** old/zic.c Tue Sep 9 22:33:18 2008 --- new/zic.c Wed Jan 14 10:59:48 2009 *************** *** 3,9 **** ** 2006-07-17 by Arthur David Olson. */
! static char elsieid[] = "@(#)zic.c 8.17";
#include "private.h" #include "locale.h" --- 3,9 ---- ** 2006-07-17 by Arthur David Olson. */
! static char elsieid[] = "@(#)zic.c 8.18";
#include "private.h" #include "locale.h" *************** *** 156,162 **** const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(void); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type);
--- 156,162 ---- const struct zone * zp, int ntzones); static void setboundaries(void); static zic_t tadd(zic_t t1, long t2); ! static void usage(FILE *stream, int status); static void writezone(const char * name, const char * string); static int yearistype(int year, const char * type);
*************** *** 454,466 **** }
static void ! usage(void) { ! (void) fprintf(stderr, _("%s: usage is %s \ ! [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"), ! progname, progname); ! exit(EXIT_FAILURE); }
static const char * psxrules; --- 454,468 ---- }
static void ! usage(FILE *stream, int status) { ! (void) fprintf(stream, _("%s: usage is %s \ ! [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ ! \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n\ ! \n\ ! Report bugs to tz@elsie.nci.nih.gov.\n"), ! progname, progname); ! exit(status); }
static const char * psxrules; *************** *** 498,508 **** if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(); case 'd': if (directory == NULL) directory = optarg; --- 500,512 ---- if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); exit(EXIT_SUCCESS); + } else if (strcmp(argv[i], "--help") == 0) { + usage(stdout, EXIT_SUCCESS); } while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1) switch (c) { default: ! usage(stderr, EXIT_FAILURE); case 'd': if (directory == NULL) directory = optarg; *************** *** 561,567 **** break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) --- 565,571 ---- break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) ! usage(stderr, EXIT_FAILURE); /* usage message by request */ if (directory == NULL) directory = TZDIR; if (yitcommand == NULL) diff -r -c old/zone.tab new/zone.tab *** old/zone.tab Tue Oct 21 12:10:25 2008 --- new/zone.tab Wed Jan 14 13:40:29 2009 *************** *** 1,4 **** ! # @(#)zone.tab 8.21 # # TZ zone descriptions # --- 1,4 ---- ! # @(#)zone.tab 8.25 # # TZ zone descriptions # *************** *** 116,122 **** CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario --- 116,122 ---- CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut ! CA +744144-0944945 America/Resolute Eastern Standard Time - Resolute, Nunavut CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario *************** *** 136,142 **** CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations --- 136,143 ---- CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville ! CH +4723+00832 Europe/Zurich most locations ! CH +4614+00604 Europe/Geneva Geneva only CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago most locations *************** *** 292,298 **** NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations --- 293,299 ---- NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo ! NP +2743+08519 Asia/Kathmandu NR -0031+16655 Pacific/Nauru NU -1901-16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations
From: Arthur David Olson Subject: proposed time zone package changes ... * europe correct Swiss rules; add Europe/Geneva ... The new timezone Europe/Geneva corresponds well with what was reported by Alois Treindl. My question is rather, is it relevant? All the differences compared to the Bern time zone occurs before our cut-off date of 1970. This has been a reason in the past for not creating new time zones, because all differences to existing zones would occur before 1970. Regards, - Jesper Nørgaard Welen Internal Virus Database is out-of-date. Checked by AVG. Version: 7.5.524 / Virus Database: 270.10.1/1867 - Release Date: 2008-12-28 14:23
participants (4)
-
Arthur David Olson -
Jesper Nørgaard -
Mark Davis -
Mark Davis