From 2864e767053317538feafa815046fff89e5a16be Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 10 Nov 1999 02:42:49 +0000 Subject: [PATCH] Update. 1999-11-09 Ulrich Drepper * elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to directory with the reference since this is as secure as using the object with the dependency. (_dl_dst_substitute): Likewise. * elf/dl-load.c (_dl_dst_count): Change strings in first two strncmp calls to allow reuse. (_dl_dst_substitute): Likewise. 1999-11-01 Arnold D. Robbins * posix/regex.c (init_syntax_once): move below definition of ISALNUM etc., then use ISALNUM to init the table, so that the word ops will work if i18n'ed. (SYNTAX): And subscript with 0xFF for 8bit character sets. 1999-11-09 Andreas Jaeger * sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin implementation for ttyname_r call; fix inverted condition; return ut_user. Closes PR libc/1438. 1999-11-09 Ulrich Drepper * timezone/checktab.awk: Update from tzcode1999h. * timezone/africa: Update from tzdata1999i. * timezone/asia: Likewise. * timezone/australasia: Likewise. * timezone/backward: Likewise. * timezone/europe: Likewise. * timezone/northamerica: Likewise. * timezone/southamerica: Likewise. * timezone/iso3166.tab: Likewise. * timezone/zone.tab: Likewise. * sysdeps/unix/sysv/linux/bits/resource.h: Define values also as macros. Patch by brg@csua.berkeley.edu [PR libc/1439]. 1999-11-09 Andreas Jaeger * posix/Makefile (tests): Added tst-getlogin. * posix/tst-getlogin.c: New file, contains simple tests for getlogin and getlogin_r. 1999-11-09 Andreas Schwab * misc/syslog.c: For LOG_PERROR only append a newline if necessary. --- ChangeLog | 52 +++++++++++ elf/dl-load.c | 38 ++++++--- manual/search.texi | 8 +- misc/syslog.c | 12 ++- posix/Makefile | 2 +- posix/regex.c | 77 ++++++++--------- posix/tst-getlogin.c | 58 +++++++++++++ sysdeps/unix/getlogin_r.c | 32 +++---- sysdeps/unix/sysv/linux/bits/resource.h | 3 + timezone/africa | 30 +++---- timezone/asia | 85 +++++++++--------- timezone/australasia | 70 +++++++++------ timezone/backward | 3 +- timezone/checktab.awk | 4 +- timezone/europe | 55 ++++++------ timezone/iso3166.tab | 17 ++-- timezone/northamerica | 68 +++++++-------- timezone/southamerica | 147 ++++++++++++++------------------ timezone/zone.tab | 15 ++-- 19 files changed, 450 insertions(+), 326 deletions(-) create mode 100644 posix/tst-getlogin.c diff --git a/ChangeLog b/ChangeLog index cd3953c9fa..f3d9cad5c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +1999-11-09 Ulrich Drepper + + * elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to + directory with the reference since this is as secure as using the + object with the dependency. + (_dl_dst_substitute): Likewise. + + * elf/dl-load.c (_dl_dst_count): Change strings in first two + strncmp calls to allow reuse. + (_dl_dst_substitute): Likewise. + +1999-11-01 Arnold D. Robbins + + * posix/regex.c (init_syntax_once): move below definition of + ISALNUM etc., then use ISALNUM to init the table, so that + the word ops will work if i18n'ed. + (SYNTAX): And subscript with 0xFF for 8bit character sets. + +1999-11-09 Andreas Jaeger + + * sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin + implementation for ttyname_r call; fix inverted condition; return + ut_user. Closes PR libc/1438. + +1999-11-09 Ulrich Drepper + + * timezone/checktab.awk: Update from tzcode1999h. + * timezone/africa: Update from tzdata1999i. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/backward: Likewise. + * timezone/europe: Likewise. + * timezone/northamerica: Likewise. + * timezone/southamerica: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/zone.tab: Likewise. + + * sysdeps/unix/sysv/linux/bits/resource.h: Define values also as + macros. Patch by brg@csua.berkeley.edu [PR libc/1439]. + +1999-11-09 Andreas Jaeger + + * posix/Makefile (tests): Added tst-getlogin. + + * posix/tst-getlogin.c: New file, contains simple tests for + getlogin and getlogin_r. + +1999-11-09 Andreas Schwab + + * misc/syslog.c: For LOG_PERROR only append a newline if + necessary. + 1999-11-08 Ulrich Drepper * elf/elf.h: Add STT_REGISTER, STT_HP_OPAQUE, and STT_ST_STUB diff --git a/elf/dl-load.c b/elf/dl-load.c index eb3c41577a..2d5478621b 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -149,21 +149,31 @@ local_strdup (const char *s) size_t _dl_dst_count (const char *name, int is_path) { + const char *const start = name; size_t cnt = 0; do { size_t len = 1; - /* $ORIGIN is not expanded for SUID/GUID programs. */ - if ((((!__libc_enable_secure - && strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0) - || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) + /* $ORIGIN is not expanded for SUID/GUID programs. + + Note that it is no bug that the strings in the first two `strncmp' + calls are longer than the sequence which is actually tested. */ + if ((((strncmp (&name[1], "ORIGIN}", 6) == 0 + && (!__libc_enable_secure + || ((name[7] == '\0' || (is_path && name[7] == ':')) + && (name == start || (is_path && name[-1] == ':')))) + && (len = 7) != 0) + || (strncmp (&name[1], "PLATFORM}", 8) == 0 && (len = 9) != 0)) && (name[len] == '\0' || name[len] == '/' || (is_path && name[len] == ':'))) || (name[1] == '{' - && ((!__libc_enable_secure - && strncmp (&name[2], "ORIGIN}", 7) == 0 && (len = 9) != 0) + && ((strncmp (&name[2], "ORIGIN}", 7) == 0 + && (!__libc_enable_secure + || ((name[9] == '\0' || (is_path && name[9] == ':')) + && (name == start || (is_path && name[-1] == ':')))) + && (len = 9) != 0) || (strncmp (&name[2], "PLATFORM}", 9) == 0 && (len = 11) != 0)))) ++cnt; @@ -180,6 +190,7 @@ char * _dl_dst_substitute (struct link_map *l, const char *name, char *result, int is_path) { + const char *const start = name; char *last_elem, *wp; /* Now fill the result path. While copying over the string we keep @@ -195,8 +206,10 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, const char *repl; size_t len; - if ((((strncmp (&name[1], "ORIGIN", 6) == 0 && (len = 7) != 0) - || (strncmp (&name[1], "PLATFORM", 8) == 0 && (len = 9) != 0)) + /* Note that it is no bug that the strings in the first two `strncmp' + calls are longer than the sequence which is actually tested. */ + if ((((strncmp (&name[1], "ORIGIN}", 6) == 0 && (len = 7) != 0) + || (strncmp (&name[1], "PLATFORM}", 8) == 0 && (len = 9) != 0)) && (name[len] == '\0' || name[len] == '/' || (is_path && name[len] == ':'))) || (name[1] == '{' @@ -205,7 +218,12 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result, && (len = 11) != 0)))) { repl = ((len == 7 || name[2] == 'O') - ? (__libc_enable_secure ? NULL : l->l_origin) + ? (__libc_enable_secure + && ((name[len] != '\0' + && (!is_path || name[len] != ':')) + || (name != start + && (!is_path || name[-1] != ':'))) + ? NULL : l->l_origin) : _dl_platform); if (repl != NULL && repl != (const char *) -1) @@ -259,7 +277,7 @@ expand_dynamic_string_token (struct link_map *l, const char *s) size_t total; char *result; - /* Determine the nubmer of DST elements. */ + /* Determine the number of DST elements. */ cnt = DL_DST_COUNT (s, 1); /* If we do not have to replace anything simply copy the string. */ diff --git a/manual/search.texi b/manual/search.texi index f561ef9e34..ec82e1cc2c 100644 --- a/manual/search.texi +++ b/manual/search.texi @@ -475,9 +475,11 @@ elements. To remove a specific element matching @var{key} from the tree @code{tdelete} can be used. It locates the matching element using the same method as @code{tfind}. The corresponding element is then removed -and the data if this tree node is returned by the function. If there is -no matching entry in the tree nothing can be deleted and the function -returns @code{NULL}. +and a pointer to the parent of the deleted node is returned by the +function. If there is no matching entry in the tree nothing can be +deleted and the function returns @code{NULL}. If the root of the tree +is deleted @code{tdelete} returns some unspecified value not equal to +@code{NULL}. @end deftypefun @comment search.h diff --git a/misc/syslog.c b/misc/syslog.c index ee832fefbe..9690bf1da6 100644 --- a/misc/syslog.c +++ b/misc/syslog.c @@ -177,10 +177,14 @@ vsyslog(pri, fmt, ap) v->iov_base = buf + msgoff; v->iov_len = bufsize - msgoff; - ++v; - v->iov_base = (char *) "\n"; - v->iov_len = 1; - (void)__writev(STDERR_FILENO, iov, 2); + /* Append a newline if necessary. */ + if (buf[bufsize - 1] != '\n') + { + ++v; + v->iov_base = (char *) "\n"; + v->iov_len = 1; + } + (void)__writev(STDERR_FILENO, iov, v - iov + 1); } /* Prepare for multiple users. We have to take care: open and diff --git a/posix/Makefile b/posix/Makefile index f8e72b65ae..7861bdf5f3 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -57,7 +57,7 @@ include ../Makeconfig aux := init-posix environ tests := tstgetopt testfnm runtests runptests \ - tst-preadwrite test-vfork regexbug1 + tst-preadwrite test-vfork regexbug1 tst-getlogin ifeq (yes,$(build-shared)) test-srcs := globtest tests += wordexp-test diff --git a/posix/regex.c b/posix/regex.c index 16e91f1514..04df21e308 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -164,46 +164,6 @@ char *realloc (); # define SWITCH_ENUM_CAST(x) (x) # endif -/* How many characters in the character set. */ -# define CHAR_SET_SIZE 256 - -# ifdef SYNTAX_TABLE - -extern char *re_syntax_table; - -# else /* not SYNTAX_TABLE */ - -static char re_syntax_table[CHAR_SET_SIZE]; - -static void -init_syntax_once () -{ - register int c; - static int done; - - if (done) - return; - - bzero (re_syntax_table, sizeof re_syntax_table); - - for (c = 'a'; c <= 'z'; c++) - re_syntax_table[c] = Sword; - - for (c = 'A'; c <= 'Z'; c++) - re_syntax_table[c] = Sword; - - for (c = '0'; c <= '9'; c++) - re_syntax_table[c] = Sword; - - re_syntax_table['_'] = Sword; - - done = 1; -} - -# endif /* not SYNTAX_TABLE */ - -# define SYNTAX(c) re_syntax_table[c] - #endif /* not emacs */ /* Get the interface, including the syntax bits. */ @@ -276,6 +236,43 @@ init_syntax_once () # define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) #endif +#ifndef emacs +/* How many characters in the character set. */ +# define CHAR_SET_SIZE 256 + +# ifdef SYNTAX_TABLE + +extern char *re_syntax_table; + +# else /* not SYNTAX_TABLE */ + +static char re_syntax_table[CHAR_SET_SIZE]; + +static void +init_syntax_once () +{ + register int c; + static int done = 0; + + if (done) + return; + bzero (re_syntax_table, sizeof re_syntax_table); + + for (c = 0; c < CHAR_SET_SIZE; ++c) + if (ISALNUM (c)) + re_syntax_table[c] = Sword; + + re_syntax_table['_'] = Sword; + + done = 1; +} + +# endif /* not SYNTAX_TABLE */ + +# define SYNTAX(c) re_syntax_table[((c) & 0xFF)] + +#endif /* emacs */ + /* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we use `alloca' instead of `malloc'. This is because using malloc in re_search* or re_match* could cause memory leaks when C-g is used in diff --git a/posix/tst-getlogin.c b/posix/tst-getlogin.c new file mode 100644 index 0000000000..75c0c5c436 --- /dev/null +++ b/posix/tst-getlogin.c @@ -0,0 +1,58 @@ +/* Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include + +int +main (void) +{ + char *login; + int errors = 0; + + login = getlogin (); + if (login == NULL) + puts ("getlogin returned NULL, no further tests"); + else + { + char name[1024]; + int ret; + + printf ("getlogin returned: `%s'\n", login); + + ret = getlogin_r (name, sizeof (name)); + if (ret == 0) + { + printf ("getlogin_r returned: `%s'\n", name); + if (strcmp (name, login) != 0) + { + puts ("Error: getlogin and getlogin_r returned different names"); + ++errors; + } + } + else + { + printf ("Error: getlogin_r returned: %d (%s)\n", + ret, strerror (ret)); + ++errors; + } + } + + return errors != 0; +} diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c index cb0545e08a..04b99056b0 100644 --- a/sysdeps/unix/getlogin_r.c +++ b/sysdeps/unix/getlogin_r.c @@ -40,20 +40,20 @@ getlogin_r (name, name_len) int result = 0; struct utmp *ut, line, buffer; - { - int d = __open ("/dev/tty", 0); - if (d < 0) - return errno; + /* Get name of tty connected to fd 0. Return if not a tty or + if fd 0 isn't open. Note that a lot of documentation says that + getlogin() is based on the controlling terminal---what they + really mean is "the terminal connected to standard input". The + getlogin() implementation of DEC Unix, SunOS, Solaris, HP-UX all + return NULL if fd 0 has been closed, so this is the compatible + thing to do. Note that ttyname(open("/dev/tty")) on those + systems returns /dev/tty, so that is not a possible solution for + getlogin(). */ - result = __ttyname_r (d, real_tty_path, sizeof (tty_pathname)); - (void) __close (d); - - if (result != 0) - { - __set_errno (result); - return result; - } - } + result = __ttyname_r (0, real_tty_path, sizeof (tty_pathname)); + + if (result != 0) + return result; real_tty_path += 5; /* Remove "/dev/". */ @@ -69,16 +69,16 @@ getlogin_r (name, name_len) } else { - size_t needed = strlen (ut->ut_line) + 1; + size_t needed = strlen (ut->ut_user) + 1; - if (needed < name_len) + if (needed > name_len) { __set_errno (ERANGE); result = ERANGE; } else { - memcpy (name, ut->ut_line, needed); + memcpy (name, ut->ut_user, needed); result = 0; } } diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h index 42e0d36f19..fcff605892 100644 --- a/sysdeps/unix/sysv/linux/bits/resource.h +++ b/sysdeps/unix/sysv/linux/bits/resource.h @@ -219,6 +219,9 @@ struct rusage enum __priority_which { PRIO_PROCESS = 0, /* WHO is a process ID. */ +#define PRIO_PROCESS PRIO_PROCESS PRIO_PGRP = 1, /* WHO is a process group ID. */ +#define PRIO_PGRP PRIO_PGRP PRIO_USER = 2 /* WHO is a user ID. */ +#define PRIO_USER PRIO_USER }; diff --git a/timezone/africa b/timezone/africa index d5d85444e8..69657c0176 100644 --- a/timezone/africa +++ b/timezone/africa @@ -1,4 +1,4 @@ -# @(#)africa 7.31 +# @(#)africa 7.32 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to @@ -7,8 +7,8 @@ # From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -294,8 +294,6 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar # Shanks reports the date as May 1, whereas Howse reports Jan; go with Shanks. # For Liberia before 1972, Shanks reports -0:44, whereas Howse and Whitman # each report -0:44:30; go with the more precise figure. -# -# From Shanks, as corrected by Whitman: # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time @@ -320,18 +318,16 @@ Rule Libya 1986 only - Apr 4 0:00 1:00 S Rule Libya 1986 only - Oct 3 0:00 0 - Rule Libya 1987 1989 - Apr 1 0:00 1:00 S Rule Libya 1987 1990 - Oct 1 0:00 0 - -Rule Libya 1990 only - May 4 0:00 1:00 S -Rule Libya 1996 only - Mar 30 2:00s 1:00 S -Rule Libya 1996 only - Sep 30 2:00s 0 - -Rule Libya 1997 only - Apr 4 0:00 1:00 S -Rule Libya 1997 only - Oct 4 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 1959 2:00 - EET 1982 - 1:00 Libya CE%sT 1991 - 2:00 - EET 1996 Mar 30 3:00 - 1:00 Libya CE%sT 1997 Oct 4 0:00 + 1:00 Libya CE%sT 1990 May 4 +# The following entries are all from Shanks; +# the IATA SSIM data contain some obvious errors. + 2:00 - EET 1996 Sep 30 + 1:00 - CET 1997 Apr 4 + 1:00 1:00 CEST 1997 Oct 4 2:00 - EET # Madagascar @@ -409,8 +405,8 @@ Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT # Namibia -# Shanks says DST transitions are at 0:00; go with IATA. # The 1994-04-03 transition is from Shanks. +# Shanks reports no DST after 1998-04; go with IATA. # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Namibia 1994 max - Sep Sun>=1 2:00 1:00 S Rule Namibia 1995 max - Apr Sun>=1 2:00 0 - @@ -458,9 +454,6 @@ Zone Africa/Kigali 2:00:16 - LMT 1935 Jun 2:00 - CAT # St Helena -# From Paul Eggert (1997-10-05): -# Shanks says St Helena was 1W26 (-0:05:44) from 1890 to 1951, -# but this is most likely a typo for 5W42, the longitude of Jamestown. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown -0:22:48 - JMT 1951 # Jamestown Mean Time @@ -517,9 +510,6 @@ Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 1:30 - SAST 1903 Mar 2:00 SA SAST -# Shanks erroneously claims that most of South Africa switched to 1:00 -# on 1994-04-03 at 00:00. -# # Marion and Prince Edward Is # scientific station since 1947 # no information diff --git a/timezone/asia b/timezone/asia index 394877c490..fd174078ad 100644 --- a/timezone/asia +++ b/timezone/asia @@ -1,4 +1,4 @@ -# @(#)asia 7.48 +# @(#)asia 7.49 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to @@ -7,9 +7,8 @@ # From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). -# Except where otherwise noted, it is the source for the data below. +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -78,24 +77,21 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 4:30 - AFT # Armenia -# From Paul Eggert (1999-09-27): +# From Paul Eggert (1999-10-29): # Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991, -# but usno1995 has Armenia at 4:00 (with DST), and Edgar Der-Danieliantz +# then to 4:00 with no DST in fall 1995, then readopting Russian DST in 1997. +# Go with Shanks, even when he disagrees with others. Edgar Der-Danieliantz # reported (1996-05-04) that Yerevan probably wouldn't use DST # in 1996, though it did use DST in 1995. IATA SSIM (1991/1998) reports that # Armenia switched from 3:00 to 4:00 in 1998 and observed DST after 1991, # but started switching at 3:00s in 1998. IATA SSIM (1999-02) reports # that they switch one day later in 2001 (i.e. on Mondays). -# What a mess! We guess Yerevan DST stayed in sync with Moscow between 1990 -# and 1995, did not use DST in 1996, and started using DST again in 1997. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 3:00 - YERT 1957 Mar # Yerevan Time 4:00 RussiaAsia YER%sT 1991 Mar 31 2:00s 3:00 1:00 YERST 1991 Sep 23 # independence - 3:00 1:00 AMST 1991 Sep 29 2:00s # Armenia Time - 3:00 - AMT 1992 Jan 19 2:00s - 4:00 RussiaAsia AM%sT 1996 + 3:00 RussiaAsia AM%sT 1995 Sep 24 2:00s 4:00 - AMT 1997 4:00 RussiaAsia AM%sT @@ -191,7 +187,7 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 # note about Time magazine, though apparently _something_ happened in 1986. # Go with Shanks for now. I made up names for the other pre-1980 time zones. -# From Shanks (1995): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Shang 1940 only - Jun 3 0:00 1:00 D Rule Shang 1940 1941 - Oct 1 0:00 0 S @@ -247,7 +243,7 @@ Zone Asia/Hong_Kong 7:36:36 - LMT 1904 Oct 30 # Taiwan -# Shanks (1995) writes that Taiwan observed DST during 1945, when it +# Shanks writes that Taiwan observed DST during 1945, when it # was still controlled by Japan. This is hard to believe, but we don't # have any other information. @@ -331,6 +327,14 @@ Zone Asia/Tbilisi 2:59:16 - LMT 1880 4:00 1:00 GEST 1997 Mar lastSun 4:00 E-EurAsia GE%sT +# East Timor +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone Asia/Dili 8:22:20 - LMT 1912 + 8:00 - TPT 1942 Feb 21 23:00 + 9:00 - JST 1945 Aug + 9:00 - TPT 1976 May 3 + 8:00 - TPT # East Timor Time + # India # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Calcutta 5:53:28 - LMT 1880 @@ -347,7 +351,9 @@ Zone Asia/Calcutta 5:53:28 - LMT 1880 # Indonesia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 - 7:07:12 - JMT 1924 Jan 1 0:13 # Jakarta MT +# Shanks says the next transition was at 1924 Jan 1 0:13, +# but this must be a typo. + 7:07:12 - JMT 1923 Dec 31 23:47:12 # Jakarta 7:20 - JAVT 1932 Nov # Java Time 7:30 - JAVT 1942 Mar 23 9:00 - JST 1945 Aug @@ -460,6 +466,7 @@ Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the `:01' is a typo. +# Shanks says Iraq did not observe DST 1992/1997 or 1999 on; ignore this. Rule Iraq 1991 max - Apr 1 3:00s 1:00 D Rule Iraq 1991 max - Oct 1 3:00s 0 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -477,7 +484,7 @@ Zone Asia/Baghdad 2:57:40 - LMT 1890 # ISRAEL 2 H AHEAD OF UTC # ISRAEL 3 H AHEAD OF UTC APR 10 - SEP 3 -# From Shanks (1995): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Zion 1940 only - Jun 1 0:00 1:00 D Rule Zion 1942 1944 - Nov 1 0:00 0 S @@ -718,16 +725,17 @@ Zone Asia/Aqtau 3:21:04 - LMT 1924 May 2 # or Aktau 4:00 E-EurAsia AQT%sT # Kirgizstan +# Transitions through 1991 are from Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Kirgiz 1992 1996 - Apr Sun>=7 0:00 1:00 S -Rule Kirgiz 1991 1996 - Sep lastSun 0:00 0 - +Rule Kirgiz 1992 1996 - Sep lastSun 0:00 0 - Rule Kirgiz 1997 max - Mar lastSun 2:30 1:00 S Rule Kirgiz 1997 max - Oct lastSun 2:30 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 5:00 - FRUT 1930 Jun 21 # Frunze Time 6:00 RussiaAsia FRU%sT 1991 Mar 31 2:00s - 5:00 1:00 FRUST 1991 Aug 31 # independence + 5:00 1:00 FRUST 1991 Aug 31 2:00 # independence 5:00 Kirgiz KG%sT # Kirgizstan Time ############################################################################### @@ -739,7 +747,7 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 # Daylight Savings Time was not observed until 1987. He did not know # at what time of day DST starts or ends. -# From Shanks (1995): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule ROK 1960 only - May 15 0:00 1:00 D Rule ROK 1960 only - Sep 13 0:00 0 S @@ -837,7 +845,6 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # Mongolia # Shanks says that Mongolia has three time zones, but usno1995 and the CIA map # Standard Time Zones of the World (1997-01) -# # both say that it has just one. # Let's comment out the western and eastern Mongolian time zones # till we know what their principal towns are. @@ -848,7 +855,8 @@ Rule Mongol 1985 1990 - Mar lastSun 2:00 1:00 S Rule Mongol 1985 1990 - Sep lastSun 3:00 0 - Rule Mongol 1991 max - Mar lastSun 0:00 1:00 S Rule Mongol 1991 1995 - Sep lastSun 0:00 0 - -Rule Mongol 1996 only - Oct Fri>=22 0:00 0 - +# IATA SSIM (1996-09) says 1996-10-25; go with Shanks. +Rule Mongol 1996 only - Oct lastSun 0:00 0 - Rule Mongol 1997 max - Sep lastSun 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] #Zone Asia/Dariv 6:14:32 - LMT 1905 Aug @@ -1028,7 +1036,6 @@ Zone Asia/Singapore 6:55:24 - LMT 1880 # no longer available as of 1999-08-17) # reported ``the country's standard time will be put forward by one hour at # midnight Friday (1830 GMT) `in the light of the present power crisis'.'' -# Transitions before 1996 are from Shanks (1995). # # From Dharmasiri Senanayake, Sri Lanka Media Minister (1996-10-24), as quoted # by Shamindra in @@ -1078,23 +1085,24 @@ Rule Syria 1991 1992 - Oct 1 0:00 0 - Rule Syria 1992 only - Apr 8 0:00 1:00 S Rule Syria 1993 only - Mar 26 0:00 1:00 S Rule Syria 1993 only - Sep 25 0:00 0 - -# IATA SSIM (1996-09) says 1997-03-31; (1998-02) says 1998-04-02; +# IATA SSIM (1998-02) says 1998-04-02; # (1998-09) says 1999-03-29 and 1999-09-29; (1999-02) says 1999-04-02, -# 2000-04-02, and 2001-04-02; ignore all these claims for now. -Rule Syria 1994 max - Apr 1 0:00 1:00 S +# 2000-04-02, and 2001-04-02; ignore all these claims and go with Shanks. +Rule Syria 1994 1996 - Apr 1 0:00 1:00 S Rule Syria 1994 max - Oct 1 0:00 0 - +Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S +Rule Syria 1999 max - Apr 1 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 2:00 Syria EE%sT # Tajikistan -# From Shanks (1995), who writes ``date of change uncertain'' for 1991. +# From Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 5:00 - DUST 1930 Jun 21 # Dushanbe Time 6:00 RussiaAsia DUS%sT 1991 Mar 31 2:00s - 5:00 1:00 DUSST 1991 Sep 9 # independence - 5:00 RussiaAsia TJ%sT 1992 + 5:00 1:00 DUSST 1991 Sep 9 2:00s 5:00 - TJT # Tajikistan Time # Thailand @@ -1104,16 +1112,13 @@ Zone Asia/Bangkok 6:42:04 - LMT 1880 7:00 - ICT # Turkmenistan -# From Shanks (1995): +# From Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Ashkhabad 3:53:32 - LMT 1924 May 2 # or Ashgabat 4:00 - ASHT 1930 Jun 21 # Ashkhabad Time - 5:00 - ASHT 1981 Apr 1 - 5:00 1:00 ASHST 1981 Oct 1 - 6:00 - ASHT 1982 Apr 1 - 5:00 RussiaAsia ASH%sT 1991 - 5:00 - ASHT 1991 Oct 27 # independence - 5:00 RussiaAsia TM%sT 1993 # Turkmenistan Time + 5:00 RussiaAsia ASH%sT 1991 Mar 31 2:00 + 4:00 RussiaAsia ASH%sT 1991 Oct 27 # independence + 4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 5:00 - TMT # United Arab Emirates @@ -1122,22 +1127,22 @@ Zone Asia/Dubai 3:41:12 - LMT 1920 4:00 - GST # Uzbekistan -# From Shanks (1995): +# 1991 transitions are from Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Samarkand 4:27:12 - LMT 1924 May 2 4:00 - SAMT 1930 Jun 21 # Samarkand Time 5:00 - SAMT 1981 Apr 1 5:00 1:00 SAMST 1981 Oct 1 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 # Tashkent Time - 5:00 - TAST 1991 Sep 1 # independence - 5:00 - UZT 1992 + 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence + 5:00 RussiaAsia UZ%sT 1992 5:00 RussiaAsia UZ%sT 1993 5:00 - UZT Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2 5:00 - TAST 1930 Jun 21 # Tashkent Time 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00s - 5:00 - TAST 1991 Sep 1 # independence - 5:00 - UZT 1992 + 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence + 5:00 RussiaAsia UZ%sT 1992 5:00 RussiaAsia UZ%sT 1993 5:00 - UZT @@ -1145,7 +1150,7 @@ Zone Asia/Tashkent 4:37:12 - LMT 1924 May 2 # From Paul Eggert (1993-11-18): # Saigon's official name is Thanh-Pho Ho Chi Minh, but it's too long. # We'll stick with the traditional name for now. -# From Shanks (1991): +# From Shanks: # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Saigon 7:06:40 - LMT 1906 Jun 9 7:06:20 - SMT 1911 Mar 11 0:01 # Saigon MT? diff --git a/timezone/australasia b/timezone/australasia index 0dbb9da881..1782558de7 100644 --- a/timezone/australasia +++ b/timezone/australasia @@ -1,4 +1,4 @@ -# @(#)australasia 7.51 +# @(#)australasia 7.52 # This file also includes Pacific islands. # Notes are at the end of this file @@ -8,8 +8,7 @@ # Australia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Shanks gives 1917 Jan 1 0:01; go with Whitman (and guess 2:00). -Rule Aus 1916 only - Oct 1 2:00 1:00 - +Rule Aus 1917 only - Jan 1 0:01 1:00 - Rule Aus 1917 only - Mar 25 2:00 0 - Rule Aus 1942 only - Jan 1 2:00 1:00 - Rule Aus 1942 only - Mar 29 2:00 0 - @@ -24,11 +23,9 @@ Rule Aus 1943 only - Oct 3 2:00 1:00 - # Northern Territory Zone Australia/Darwin 8:43:20 - LMT 1895 Feb 9:00 - CST 1899 May - 9:30 - CST 1917 Jan 1 0:01 9:30 Aus CST # Western Australia Zone Australia/Perth 7:43:24 - LMT 1895 Dec - 8:00 - WST 1917 Jan 1 0:01 8:00 Aus WST 1943 Jul 8:00 - WST 1974 Oct lastSun 2:00s 8:00 1:00 WST 1975 Mar Sun>=1 2:00s @@ -58,11 +55,9 @@ Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 - Rule Holiday 1992 1993 - Oct lastSun 2:00s 1:00 - Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 - Zone Australia/Brisbane 10:12:08 - LMT 1895 - 10:00 - EST 1917 Jan 1 0:01 10:00 Aus EST 1971 10:00 AQ EST Zone Australia/Lindeman 9:55:56 - LMT 1895 - 10:00 - EST 1917 Jan 1 0:01 10:00 Aus EST 1971 10:00 AQ EST 1992 Jul 10:00 Holiday EST @@ -81,7 +76,6 @@ Rule AS 1995 max - Mar lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Adelaide 9:14:20 - LMT 1895 Feb 9:00 - CST 1899 May - 9:30 - CST 1917 Jan 1 0:01 9:30 Aus CST 1971 9:30 AS CST @@ -99,11 +93,14 @@ Rule AT 1986 only - Oct Sun>=15 2:00s 1:00 - Rule AT 1987 1990 - Mar Sun>=15 2:00s 0 - Rule AT 1987 only - Oct Sun>=22 2:00s 1:00 - Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 - -Rule AT 1991 max - Oct Sun>=1 2:00s 1:00 - +Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 - Rule AT 1991 max - Mar lastSun 2:00s 0 - +Rule AT 2000 only - Aug lastSun 2:00s 1:00 - +Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Hobart 9:49:16 - LMT 1895 Sep - 10:00 - EST 1917 Jan 1 0:01 + 10:00 - EST 1916 Oct 1 2:00 + 10:00 1:00 EST 1917 Feb 10:00 Aus EST 1967 10:00 AT EST @@ -121,7 +118,6 @@ Rule AV 2000 only - Aug lastSun 2:00s 1:00 - Rule AV 2001 max - Oct lastSun 2:00s 1:00 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Melbourne 9:39:52 - LMT 1895 Feb - 10:00 - EST 1917 Jan 1 0:01 10:00 Aus EST 1971 10:00 AV EST @@ -141,13 +137,11 @@ Rule AN 2000 only - Aug lastSun 2:00s 1:00 - Rule AN 2001 max - Oct lastSun 2:00s 1:00 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Australia/Sydney 10:04:52 - LMT 1895 Feb - 10:00 - EST 1917 Jan 1 0:01 10:00 Aus EST 1971 10:00 AN EST Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb 10:00 - EST 1896 Aug 23 9:00 - CST 1899 May - 9:30 - CST 1917 Jan 1 0:01 9:30 Aus CST 1971 9:30 AN CST 2000 9:30 AS CST @@ -157,10 +151,10 @@ Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb Rule LH 1981 1984 - Oct lastSun 2:00s 1:00 - Rule LH 1982 1985 - Mar Sun>=1 2:00s 0 - Rule LH 1985 only - Oct lastSun 2:00s 0:30 - -Rule LH 1986 1989 - Mar Sun>=15 2:00s 0 - +Rule LH 1986 1991 - Mar Sun>=15 2:00s 0 - Rule LH 1986 only - Oct 19 2:00s 0:30 - Rule LH 1987 max - Oct lastSun 2:00s 0:30 - -Rule LH 1990 1995 - Mar Sun>=1 2:00s 0 - +Rule LH 1992 1995 - Mar Sun>=1 2:00s 0 - Rule LH 1996 max - Mar lastSun 2:00s 0 - Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:00 - EST 1981 Mar @@ -193,7 +187,7 @@ Zone Indian/Christmas 7:02:52 - LMT 1895 Feb 7:00 - CXT # Christmas Island Time # Cook Is -# From Shanks (1995): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Cook 1978 only - Nov 12 0:00 0:30 HS Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 - @@ -271,8 +265,9 @@ Zone Pacific/Truk 10:07:08 - LMT 1901 Zone Pacific/Ponape 10:32:52 - LMT 1901 # Kolonia 11:00 - PONT # Ponape Time Zone Pacific/Kosrae 10:51:56 - LMT 1901 - 11:00 - PONT 1969 Oct - 12:00 - KOST # Kosrae Time + 11:00 - KOST 1969 Oct # Kosrae Time + 12:00 - KOST 1999 + 11:00 - KOST # Nauru # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -287,6 +282,7 @@ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S Rule NC 1978 1979 - Feb 27 0:00 0 - Rule NC 1996 only - Dec 1 2:00s 1:00 S +# Shanks says the following was at 2:00; go with IATA. Rule NC 1997 only - Mar 2 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Noumea 11:05:48 - LMT 1912 Jan 13 @@ -394,10 +390,9 @@ Zone Pacific/Fakaofo -11:24:56 - LMT 1901 -10:00 - TKT # Tokelau Time # Tonga -# Transition time is a guess--see below # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Tonga 1999 max - Oct Sat>=1 0:00 1:00 S -Rule Tonga 2000 max - Apr Sat>=15 0:00 - - +Rule Tonga 1999 max - Oct Sat>=1 2:00s 1:00 S +Rule Tonga 2000 max - Apr Sun>=16 2:00s - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Tongatapu 12:19:20 - LMT 1901 12:20 - TOT 1941 # Tonga Time @@ -467,10 +462,10 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert (1999-03-22): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -733,6 +728,13 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # 6 weeks a year now when we are out of sync with the rest of Australia # (but nothing new about that). +# From Alex Livingston (1999-10-04): +# I heard on the ABC (Australian Broadcasting Corporation) radio news on the +# (long) weekend that Tasmania, which usually goes its own way in this regard, +# has decided to join with most of NSW, the ACT, and most of Victoria +# (Australia) and start daylight saving on the last Sunday in August in 2000 +# instead of the first Sunday in October. + # Victoria # The rules for 1971 through 1991 were reported by George Shepherd @@ -884,11 +886,11 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # time on both the first Sunday in October and the third Sunday in March. # As with Australia, we'll assume the tradition is 2:00s, not 2:00. # -# From Paul Eggert (1996-11-22): -# Shanks gives no data for Chatham; usno1989 says it's +12:45, -# usno1995 says it's +12:45/+13:45, and IATA SSIM (1991/1996) +# From Paul Eggert (1999-10-29): +# Shanks gives no time data for Chatham; usno1989 says it's +12:45, +# usno1995 says it's +12:45/+13:45, and IATA SSIM (1991/1999) # gives the NZ rules but with transitions at 2:45 local standard time. -# Guess that they adopted DST in 1990. +# Guess that they have been in lock-step with NZ since 1990. ############################################################################### @@ -945,6 +947,14 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Shanks writes that Truk switched from GMT+10 to GMT+11 on 1978-10-01; # ignore this for now. +# From Paul Eggert (1999-10-29): +# The Federated States of Micronesia Visitors Board writes in +# +# The Federated States of Micronesia - Visitor Information +# (1999-01-26) +# that Truk and Yap are GMT+10, and Ponape and Kosrae are GMT+11. +# We don't know when Kosrae switched from GMT+12; assume January 1 for now. + # Samoa # Howse writes (p 153, citing p 10 of the 1883-11-18 New York Herald) @@ -1018,3 +1028,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # Sept. 10, clocks must be turned ahead one hour on the opening day and # set back an hour on the closing date." # Alas, no indication of the time of day. + +# From Rives McDow (1999-10-06): +# Tonga started its Daylight Saving on Saturday morning October 2nd at 0200am. +# Daylight Saving ends on April 16 at 0300am which is Sunday morning. diff --git a/timezone/backward b/timezone/backward index 84f3de51b1..23b76cba5e 100644 --- a/timezone/backward +++ b/timezone/backward @@ -1,9 +1,10 @@ -# @(#)backward 7.15 +# @(#)backward 7.16 # This file provides links between current names for time zones # and their old names. Many names changed in late 1993. Link America/Adak America/Atka +Link America/Tijuana America/Ensenada Link America/Indianapolis America/Fort_Wayne Link America/Indiana/Knox America/Knox_IN Link America/St_Thomas America/Virgin diff --git a/timezone/checktab.awk b/timezone/checktab.awk index 43ecc92dfa..6a2d19ae00 100644 --- a/timezone/checktab.awk +++ b/timezone/checktab.awk @@ -1,6 +1,6 @@ # Check tz tables for consistency. -# @(#)checktab.awk 1.5 +# @(#)checktab.awk 1.6 # Contributed by Paul Eggert . @@ -148,7 +148,7 @@ END { if (0 < want_warnings) { for (cc in cc2name) { if (!cc_used[cc]) { - printf "%s:%d: warning:" \ + printf "%s:%d: warning: " \ "no Zone entries for %s (%s)\n", \ iso_table, cc2NR[cc], cc, cc2name[cc] } diff --git a/timezone/europe b/timezone/europe index ea38d124ac..cdbc667c78 100644 --- a/timezone/europe +++ b/timezone/europe @@ -1,13 +1,13 @@ -# @(#)europe 7.65 +# @(#)europe 7.66 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert (1999-03-22): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -724,10 +724,10 @@ # changes in Alderney and Guernsey were at the same 2am GMT time as # for Great Britain; the order for Jersey is more interesting. # -# From Paul Eggert (1999-10-06): +# From Paul Eggert (1999-10-22): # Mark Brader kindly translated the 1916 Jersey order from the French. # It says that the 1916 transitions were 05-20 and 09-30 at midnight. -# Presumably this was 24:00, two hours earlier than Great Britain. +# No doubt this was 24:00, two or three hours earlier than Great Britain. # It also says that after 1916 they'll sync with Great Britain. # From Joseph S. Myers (1999-09-28): @@ -1005,9 +1005,6 @@ Rule Russia 1919 only - May 31 23:00 2:00 MDST Rule Russia 1919 only - Jul 1 2:00 1:00 S Rule Russia 1919 only - Aug 16 0:00 0 - Rule Russia 1921 only - Feb 14 23:00 1:00 S -# Shanks gives 1921 Mar 21 for the following transition. -# From Andrey A. Chernov (1993-11-12): -# My sources says, that it is Mar 20, not 21. Rule Russia 1921 only - Mar 20 23:00 2:00 M # Midsummer Rule Russia 1921 only - Sep 1 0:00 1:00 S Rule Russia 1921 only - Oct 1 0:00 0 - @@ -1090,7 +1087,7 @@ Rule Albania 1984 only - Apr 1 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Tirane 1:19:20 - LMT 1914 1:00 - CET 1940 Jun 16 -# The following transition is from Shanks's 4th edition (1995). +# The following transition is from Shanks. 1:00 Albania CE%sT 1984 Jul 1:00 EU CE%sT @@ -1120,17 +1117,18 @@ Zone Europe/Vienna 1:05:20 - LMT 1893 Apr 1:00 EU CE%sT # Belarus -# Transitions before 1991 are from Shanks (1995). +# Transitions before 1991 are from Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Minsk 1:50:16 - LMT 1880 1:50 - MMT 1924 May 2 # Minsk Mean Time 2:00 - EET 1930 Jun 21 3:00 - MSK 1941 Jun 28 1:00 C-Eur CE%sT 1944 Jul 3 - 3:00 Russia MSK/MSD 1991 Mar 31 2:00s + 3:00 Russia MSK/MSD 1990 + 3:00 - MSK 1991 Mar 31 2:00s 2:00 1:00 EEST 1991 Sep 29 2:00s - 2:00 - EET 1992 Mar 29 2:00s - 2:00 1:00 EEST 1992 Sep 27 2:00s + 2:00 - EET 1992 Mar 29 0:00s + 2:00 1:00 EEST 1992 Sep 27 0:00s 2:00 Russia EE%sT # Belgium @@ -1366,7 +1364,6 @@ Zone Europe/Helsinki 1:39:52 - LMT 1878 May 31 # France # # Shanks seems to use `24:00' ambiguously; we resolve it with Whitman. -# From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule France 1916 only - Jun 14 23:00s 1:00 S Rule France 1916 1919 - Oct Sun>=1 23:00s 0 - @@ -1454,7 +1451,6 @@ Rule Germany 1945 only - May 31 3:00 2:00 M # Midsummer Rule Germany 1945 only - Sep 23 3:00 1:00 S Rule Germany 1945 only - Nov 18 2:00s 0 - Rule Germany 1946 only - Apr 14 2:00s 1:00 S -# Shanks gives 1946-10-06; go with the PTB. Rule Germany 1946 only - Oct 7 2:00s 0 - Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 - Rule Germany 1947 only - Apr 6 2:00s 1:00 S @@ -1571,10 +1567,10 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct # might be a reference to the Julian calendar as opposed to Gregorian, or it # might mean something else (???). # -# From Paul Eggert (1993-12-09): +# From Paul Eggert (1999-10-29): # The Iceland Almanak, Shanks and Whitman disagree on many points. # We go with the Almanak, except for one claim from Shanks, namely that -# Reykavik was -1:28 from 1837 to 1908, local mean time before that. +# Reykavik was 21W57 from 1837 to 1908, local mean time before that. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Iceland 1917 1918 - Feb 19 23:00 1:00 S @@ -1728,8 +1724,6 @@ Zone Europe/Riga 1:36:24 - LMT 1880 2:00 - EET 1940 Aug 5 3:00 - MSK 1941 Jul 1:00 C-Eur CE%sT 1944 Oct 13 - # Shanks says 1944-08-08, but - # Riga fell to the Red Army on 1944-10-13. 3:00 Russia MSK/MSD 1989 Mar lastSun 2:00s 2:00 1:00 EEST 1989 Sep lastSun 2:00s 2:00 Latvia EE%sT 1997 Jan 21 @@ -1832,12 +1826,14 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta 1:00 EU CE%sT # Moldova +# see commentary for Romania # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Chisinau 1:55:20 - LMT 1924 May 2 2:00 - EET 1930 Jun 21 3:00 Russia MSK/MSD 1991 Mar 31 2:00s 2:00 1:00 EEST 1991 Sep 29 2:00s - 2:00 E-Eur EE%sT + 2:00 E-Eur EE%sT 1997 + 2:00 EU EE%sT # Monaco # Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. @@ -1852,7 +1848,7 @@ Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 # Howse writes that the Netherlands' railways used GMT between 1892 and 1940, # but for other purposes the Netherlands used Amsterdam mean time. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Shanks gives 1916 May 1 0:00 and 1916 Oct 1 0:00; go with Whitman. +# Shanks gives 1916 Apr 30 24:00 and 1916 Oct 1 00:00; go with Whitman. Rule Neth 1916 only - May 1 2:00s 1:00 NST # Netherlands Summer Time Rule Neth 1916 only - Oct 2 2:00s 0 AMT # Amsterdam Mean Time Rule Neth 1917 only - Apr 16 2:00s 1:00 NST @@ -1878,7 +1874,6 @@ Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 - Rule Neth 1938 1939 - May 15 2:00s 1:00 S Rule Neth 1945 only - Apr 2 2:00s 1:00 S Rule Neth 1945 only - May 20 2:00s 0 - -# Before 1937, Shanks says just `0:20'; we use Whitman's more precise figure. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Amsterdam 0:19:28 - LMT 1892 May 0:19:28 Neth %s 1937 Jul @@ -2067,6 +2062,14 @@ Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal 0:00 EU WE%sT # Romania +# +# From Paul Eggert (1999-10-07): +# +# Nine O'clock (1998-10-23) reports that the switch occurred at +# 04:00 local time in fall 1998. For lack of better info, +# assume that Romania and Moldova switched to EU rules in 1997, +# the same year as Bulgaria. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Romania 1932 only - May 21 0:00s 1:00 S Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 - @@ -2083,7 +2086,8 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct 2:00 Romania EE%sT 1981 Mar 29 2:00s 2:00 C-Eur EE%sT 1991 2:00 Romania EE%sT 1994 - 2:00 E-Eur EE%sT + 2:00 E-Eur EE%sT 1997 + 2:00 EU EE%sT # Russia @@ -2293,7 +2297,7 @@ Zone Europe/Stockholm 1:12:12 - LMT 1878 May 31 # 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 (1991): +# From Shanks: 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] @@ -2316,7 +2320,6 @@ Rule Turkey 1922 only - Oct 8 0:00 0 - Rule Turkey 1924 only - May 13 0:00 1:00 S Rule Turkey 1924 1925 - Oct 1 0:00 0 - Rule Turkey 1925 only - May 1 0:00 1:00 S -# Shanks omits the first two transitions in 1940; go with Whitman. Rule Turkey 1940 only - Jun 30 0:00 1:00 S Rule Turkey 1940 only - Oct 5 0:00 0 - Rule Turkey 1940 only - Dec 1 0:00 1:00 S diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab index e20b5895eb..0173c40112 100644 --- a/timezone/iso3166.tab +++ b/timezone/iso3166.tab @@ -1,21 +1,18 @@ # ISO 3166 2-letter country codes # -# @(#)iso3166.tab 1.6 +# @(#)iso3166.tab 1.7 # -# From Paul Eggert (1996-09-03): +# From Paul Eggert (1999-10-13): # # This file contains a table with the following columns: -# 1. ISO 3166-1:1997 2-character country code. See: +# 1. ISO 3166-1:1999 2-character country code. See: +# +# ISO 3166-1: The Code List +# . # 2. The usual English name for the country, # chosen so that alphabetic sorting of subsets produces helpful lists. # This is not the same as the English name in the ISO 3166 tables. # -# The PS code below has been reserved for Palestine by the ISO; -# however, the code is not yet officially assigned to Palestine. Please see -# -# Cord Wischhoefer, Country Code Elements for Palestine (1996-07-24) -# . -# # Columns are separated by a single tab. # The table is sorted by country code. # @@ -95,7 +92,6 @@ FK Falkland Islands FM Micronesia FO Faeroe Islands FR France -FX France, Metropolitan GA Gabon GB Britain (UK) GD Grenada @@ -114,6 +110,7 @@ GT Guatemala GU Guam GW Guinea-Bissau GY Guyana +HK Hong Kong HM Heard Island & McDonald Islands HN Honduras HR Croatia diff --git a/timezone/northamerica b/timezone/northamerica index 6203adf8be..743e721dda 100644 --- a/timezone/northamerica +++ b/timezone/northamerica @@ -1,4 +1,4 @@ -# @(#)northamerica 7.47 +# @(#)northamerica 7.48 # also includes Central America and the Caribbean # This data is by no means authoritative; if you think you know better, @@ -408,6 +408,16 @@ Zone America/Louisville -5:43:02 - LMT 1883 Nov 18 12:00 -5:00 US E%sT 1974 Jan 6 2:00 -6:00 1:00 CDT 1974 Oct 27 2:00 -5:00 US E%sT +# Wayne County, Kentucky +# From +# +# Federal Register Doc. 99-26945 +# (1999-10-14 08:45-04) +# In response to a petition by the Wayne County, Kentucky, Fiscal Court, +# the Department of Transportation (DOT) proposed to move Wayne County, +# Kentucky, from the Central Time Zone to the Eastern Time Zone.... Now +# the earliest date that the proposed change might take effect is +# October 29, 2000. # Michigan # @@ -482,10 +492,10 @@ Link Pacific/Honolulu HST ################################################################################ -# From Paul Eggert (1996-11-22): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the US is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -536,7 +546,7 @@ Link Pacific/Honolulu HST # From Paul Eggert (1994-11-22): # Alas, this sort of thing must be handled by localization software. -# The data for Canada are all from Shanks (1991). +# The data for Canada are all from Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -682,7 +692,7 @@ Zone America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 # says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT. # Officially Atikokan is therefore on CST/CDT, and most likely this report # concerns a non-official time observed as a matter of local practice. -# For what it's worth, Shanks (1995) says that Atikokan has agreed with +# For what it's worth, Shanks says that Atikokan has agreed with # Rainy River ever since standard time was introduced. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -854,7 +864,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep # From Paul Eggert (1996-06-12): # Shanks writes that since 1970 most of this region has been like Vancouver. -# Dawswon Creek uses MST. Much of east BC is like Edmonton. +# Dawson Creek uses MST. Much of east BC is like Edmonton. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Vanc 1918 only - Apr 14 2:00 1:00 D @@ -877,9 +887,8 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # Northwest Territories, Nunavut, Yukon -# From Paul Eggert (1996-10-07): +# From Paul Eggert (1999-10-29): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. -# Shanks's table for Watson Lake is corrupted, so we have no data there. # Mathew Englander (1996-10-07) gives the following refs: # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, # c. 7 defines Yukon standard time as UTC-9. This is still valid; @@ -892,7 +901,7 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. # -# The change announcement +# Nunavut moves to single time zone Oct. 31 # # # From Antoine Leca (1999-09-06): @@ -997,10 +1006,6 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # a zone that's GMT-8 with DST; a zone that's always GMT-7; # a zone that's GMT-6 with DST; and a zone that's always GMT-6. -# From Paul Eggert (1993-11-18): -# Shanks also says there are four zones, but disagrees about the fourth. -# Instead of GMT-6 with DST, he says there's GMT-8 without DST. - # From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. @@ -1039,7 +1044,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # The State of Quintana Roo has reverted back to central STD and DST times # (i.e. UTC -0600 and -0500 as of 1998-08-02). -# From Shanks (1991): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Mexico 1939 only - Feb 5 0:00 1:00 D Rule Mexico 1939 only - Jun 25 0:00 0 S @@ -1052,12 +1057,11 @@ Rule Mexico 1950 only - Jul 30 0:00 0 S Rule Mexico 1996 max - Apr Sun>=1 2:00 1:00 D Rule Mexico 1996 max - Oct lastSun 2:00 0 S # -Rule BajaN 1950 1966 - Apr lastSun 2:00 1:00 D -Rule BajaN 1950 1961 - Sep lastSun 2:00 0 S -Rule BajaN 1961 1966 - Oct lastSun 2:00 0 S +Rule BajaN 1954 1961 - Apr lastSun 2:00 1:00 D +Rule BajaN 1954 1961 - Sep lastSun 2:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] # Quintana Roo -Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 1:12:42 +Zone America/Cancun -5:47:04 - LMT 1922 Jan 1 0:12:56 -6:00 - CST 1996 -6:00 Mexico C%sT 1997 Oct lastSun 2:00 -5:00 Mexico E%sT 1998 Aug 2 2:00 @@ -1071,7 +1075,7 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 0:23:24 -7:00 - MST 1932 Mar 30 23:00 -6:00 Mexico C%sT # Chihuahua -Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:44 +Zone America/Chihuahua -7:04:20 - LMT 1921 Dec 31 23:55:40 -7:00 - MST 1927 Jun 10 23:00 -6:00 - CST 1930 Nov 15 -7:00 - MST 1931 May 1 23:00 @@ -1092,23 +1096,15 @@ Zone America/Mazatlan -7:05:40 - LMT 1921 Dec 31 23:54:20 -7:00 - MST 1949 Jan 14 -8:00 - PST 1970 -7:00 Mexico M%sT -# N Baja California +# Baja California Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -8:00 - PST 1927 Jun 10 23:00 -7:00 - MST 1930 Nov 16 -8:00 - PST 1942 Apr -7:00 - MST 1949 Jan 14 - -8:00 BajaN P%sT 1967 Apr lastSun 2:00 + -8:00 BajaN P%sT 1976 -8:00 US P%sT 1996 -8:00 Mexico P%sT -# Baja California -Zone America/Ensenada -7:46:28 - LMT 1922 Jan 1 0:13:32 - -8:00 - PST 1927 Jun 10 23:00 - -7:00 - MST 1930 Nov 16 - -8:00 - PST 1942 Apr - -7:00 - MST 1949 Jan 14 - -8:00 - PST 1996 - -8:00 Mexico P%sT # # Revillagigedo Is # no information @@ -1173,8 +1169,6 @@ Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown -5:00 - EST # Costa Rica -# Shanks gives some very odd dates for 1991, and stops there. -# For now, we won't guess further. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S @@ -1185,7 +1179,7 @@ Rule CR 1992 only - Mar 15 0:00 0 S # There are too many San Joses elsewhere, so we'll use `Costa Rica'. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose - -5:36 - SJMT 1921 Jan 15 # San Jose Mean Time + -5:36:20 - SJMT 1921 Jan 15 # San Jose Mean Time -6:00 CR C%sT # Coco # no information; probably like America/Costa_Rica @@ -1236,7 +1230,7 @@ Rule Cuba 2000 max - Apr 1 0:00s 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Havana -5:29:28 - LMT 1890 - -5:30 - HMT 1925 Jul 19 12:00 # Havana MT + -5:29:36 - HMT 1925 Jul 19 12:00 # Havana MT -5:00 Cuba C%sT # Dominica @@ -1294,7 +1288,7 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 Rule Haiti 1983 only - May 8 0:00 1:00 D Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S -# Shanks says AT is 2:00, but IATA SSIM (1991/1996) says 1:00s. Go with IATA. +# Shanks says AT is 2:00, but IATA SSIM (1991/1997) says 1:00s. Go with IATA. Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -1318,11 +1312,11 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr # From U. S. Naval Observatory (1989-01-19): # JAMAICA 5 H BEHIND UTC -# From Shanks (1991): +# From Shanks: # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Jamaica -5:07:12 - LMT 1890 # Kingston -5:07:12 - KMT 1912 Feb # Kingston Mean Time - -5:00 - EST 1974 Jan 6 2:00 + -5:00 - EST 1974 Apr 28 2:00 -5:00 US E%sT 1984 -5:00 - EST diff --git a/timezone/southamerica b/timezone/southamerica index 25446807af..bb95d0d705 100644 --- a/timezone/southamerica +++ b/timezone/southamerica @@ -1,4 +1,4 @@ -# @(#)southamerica 7.31 +# @(#)southamerica 7.32 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to @@ -6,8 +6,8 @@ # From Paul Eggert (1999-07-07): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (4th edition), -# San Diego: ACS Publications, Inc. (1995). +# Thomas G. Shanks, The International Atlas (5th edition), +# San Diego: ACS Publications, Inc. (1999). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -99,7 +99,7 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S # Talleres de Hidrografia Naval Argentina # (Argentine Naval Hydrography Institute) # -# Shanks gives 1989 Mar 16 and stops after 1990 Mar 4; go with Otero. +# Shanks stops after 1992-03-01; go with Otero. Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 - Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S # @@ -216,38 +216,16 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # Maranhao (MA), Paraiba (PR), Pernambuco (PE), Piaui (PI), and Rio Grande do # Norte (RN), and the eastern part of Para (PA) are all in BR1 without DST. -# From Paul Eggert (1996-11-22): -# Let's make the following assumptions: -# -# * All data in Shanks are correct through 1990. In particular, -# Shanks was right when he said Acre stopped observing DST in mid-1988. -# * Areas where Shanks reports DST up to 1990, but the IATA reports no DST -# in 1995, stopped observing DST in mid-1990. -# -# Under these assumptions Brazil needs 7 entries to cover all the distinct -# time zone histories since 1970: -# -# Noronha (UTC-2), Fortaleza (UTC-3), and Manaus (UTC-4) stopped observing DST -# in mid-1990. -# Maceio (UTC-3) stopped observing DST in mid-1990, but started again mid-1995. -# Sao Paulo (UTC-3) and Cuiaba (UTC-4) always observed DST. -# Porto Acre (UTC-5) stopped observing DST in mid-1988. - -# From Rodrigo Feher (1998-01-17): -# Reading "southamerica" file in timezone 7.55 I've found an -# error. Line 193 say "Territory of Acre". It is not a territory anymore -# but a state. - # From Marcos Tadeu (1998-09-27): # # Brazilian official page # # -# From Paul Eggert (1998-09-28): +# From Paul Eggert (1998-10-29): # The official decrees referenced below are taken from # # Decretos sobre o Horario de Verao no Brasil -# (1998-09-25, in Portuguese). +# (1999-10-04, in Portuguese). # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Decree 20,466 (1931-10-01) @@ -355,9 +333,11 @@ Rule Brazil 1998 only - Mar 1 0:00 0 - Rule Brazil 1998 only - Oct 11 0:00 1:00 S Rule Brazil 1999 only - Feb 21 0:00 0 - # Decree 3,150 -# (1999-08-23), adopted by same states, says only 1999-10-03 and 2000-02-27; -# after that, these rules are guesses and are quite possibly wrong, -# but they are more likely than no DST at all. +# (1999-08-23) adopted by same states. +# Decree 3,188 (1999-09-30) +# adds SE, AL, PE, PR, RN, CE, PI, MA and RR. +# These give only one year's rules. After that, the rules are guesses +# and are quite possibly wrong, but are more likely than no DST at all. Rule Brazil 1999 max - Oct Sun>=1 0:00 1:00 S Rule Brazil 2000 max - Feb lastSun 0:00 0 - @@ -366,61 +346,69 @@ Rule Brazil 2000 max - Feb lastSun 0:00 0 - # # Fernando de Noronha Zone America/Noronha -2:09:40 - LMT 1914 - -2:00 Brazil FN%sT 1990 Jul + -2:00 Brazil FN%sT 1990 Sep 17 -2:00 - FNT # -# Amapa, east Para +# Amapa (AP), east Para (PA) Zone America/Belem -3:13:56 - LMT 1914 - -3:00 Brazil BR%sT 1988 Jul + -3:00 Brazil BR%sT 1988 Sep 12 -3:00 - BRT # -# Maranhao, Piaui, Ceara, Rio Grande do Norte, Paraiba, -# Pernambuco (except Fernando de Noronha) +# Maranhao (MA), Piaui (PI), Ceara (CE), Rio Grande do Norte (RN), +# Paraiba (PB), Pernambuco (PE) (except Fernando de Noronha) Zone America/Fortaleza -2:34:00 - LMT 1914 - -3:00 Brazil BR%sT 1990 Jul - -3:00 - BRT + -3:00 Brazil BR%sT 1990 Sep 17 + -3:00 - BRT 1999 Sep 30 + -3:00 Brazil BR%sT # -# Tocantins +# Tocantins (TO) Zone America/Araguaina -3:12:48 - LMT 1914 - -3:00 Brazil BR%sT 1990 Jul - -3:00 - BRT 1995 Jul + -3:00 Brazil BR%sT 1990 Sep 17 + -3:00 - BRT 1995 Sep 14 -3:00 Brazil BR%sT # -# Alagoas, Sergipe +# Alagoas (AL), Sergipe (SE) Zone America/Maceio -2:22:52 - LMT 1914 - -3:00 Brazil BR%sT 1990 Jul - -3:00 - BRT 1995 Jul - -3:00 Brazil BR%sT 1996 Jul - -3:00 - BRT + -3:00 Brazil BR%sT 1990 Sep 17 + -3:00 - BRT 1995 Oct 13 + -3:00 Brazil BR%sT 1996 Sep 4 + -3:00 - BRT 1999 Sep 30 + -3:00 Brazil BR%sT # -# Bahia, Goias, Distrito Federal, Minas Gerais, Espirito Santo, Rio de Janeiro, -# Sao Paulo, Parana, Santa Catarina, Rio Grande do Sul +# Bahia (BA), Goias (GO), Distrito Federal (DF), Minas Gerais (MG), +# Espirito Santo (ES), Rio de Janeiro (RJ), Sao Paulo (SP), Parana (PR), +# Santa Catarina (SC), Rio Grande do Sul (RS) Zone America/Sao_Paulo -3:06:28 - LMT 1914 -3:00 Brazil BR%sT 1963 Oct 23 00:00 - -3:00 - BRST 1964 + -3:00 1:00 BRST 1964 -3:00 Brazil BR%sT # # Mato Grosso, Mato Grosso do Sul Zone America/Cuiaba -3:44:20 - LMT 1914 - -4:00 Brazil AM%sT 1990 Jul - -4:00 - AMT + -4:00 Brazil AM%sT # -# Roraima, west Para, Rondonia +# west Para (PA), Rondonia (RO) Zone America/Porto_Velho -4:15:36 - LMT 1914 - -4:00 Brazil AM%sT 1988 Jul + -4:00 Brazil AM%sT 1988 Sep 12 -4:00 - AMT # -# Amazonas +# Roraima (RR) +Zone America/Boa_Vista -4:02:40 - LMT 1914 + -4:00 Brazil AM%sT 1988 Sep 12 + -4:00 - AMT 1999 Sep 30 + -4:00 Brazil AM%sT +# +# Amazonas (AM) Zone America/Manaus -4:00:04 - LMT 1914 - -4:00 Brazil AM%sT 1988 Jul - -4:00 - AMT 1993 Jul - -4:00 Brazil AM%sT 1994 Jul + -4:00 Brazil AM%sT 1988 Sep 12 + -4:00 - AMT 1993 Sep 28 + -4:00 Brazil AM%sT 1994 Sep 22 -4:00 - AMT # -# Acre +# Acre (AC) # Rio_Branco is too ambiguous, since there's a Rio Branco in Uruguay too. Zone America/Porto_Acre -4:31:12 - LMT 1914 - -5:00 Brazil AC%sT 1988 Jul + -5:00 Brazil AC%sT 1988 Sep 12 -5:00 - ACT # # Martin Vaz and Trinidade are like America/Noronha. @@ -452,7 +440,7 @@ Rule Chile 1999 only - Apr 4 0:00 0 - Rule Chile 1999 max - Oct Sun>=9 0:00 1:00 S Rule Chile 2000 max - Mar Sun>=9 0:00 0 - # IATA SSIM anomalies: (1990-09) says 1990-09-16; (1992-02) says 1992-03-14; -# (1996-09) says 1998-03-08. Ignore these for now. +# (1996-09) says 1998-03-08. Ignore these. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Santiago -4:42:40 - LMT 1890 -4:42:40 - SMT 1910 # Santiago Mean Time @@ -469,9 +457,10 @@ Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri # Colombia +# Shanks specifies 24:00 for 1992 transition times; go with IATA, +# as it seems implausible to change clocks at midnight New Year's Eve. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule CO 1992 only - May 2 0:00 1:00 S -# Shanks (1995) estimates 1993-04-03 24:00 for this; go with IATA. Rule CO 1992 only - Dec 31 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Bogota -4:56:20 - LMT 1884 Mar 13 @@ -481,7 +470,7 @@ Zone America/Bogota -4:56:20 - LMT 1884 Mar 13 # no information; probably like America/Bogota # Curacao -# Shanks (1995) says that Bottom and Oranjestad have been at -4:00 since +# Shanks says that Bottom and Oranjestad have been at -4:00 since # standard time was introduced on 1912-03-02; and that Kralendijk and Rincon # used Kralendijk Mean Time (-4:33:08) from 1912-02-02 to 1965-01-01. # This all predates our 1970 cutoff, though. @@ -535,22 +524,14 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown -4:00 - GYT # Paraguay - -# From Bob Devine (1988-01-28): -# Paraguay: First day in October to last in March. Midnight switch?? -# Since 1980. - -# From U. S. Naval Observatory (1989-01-19): -# PARAGUAY 4 H BEHIND UTC -# PARAGUAY 3 H BEHIND UTC OCT 1, '88-MAR 31, '89 - -# From Shanks (1991): +# From Paul Eggert (1999-10-29): +# Shanks (1999) says that spring transitions are from 01:00 -> 02:00, +# and autumn transitions are from 00:00 -> 23:00. Go with earlier +# editions of Shanks, and with the IATA, who say transitions occur at 00:00. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Para 1975 1978 - Oct 1 0:00 1:00 S +Rule Para 1975 1988 - Oct 1 0:00 1:00 S Rule Para 1975 1978 - Mar 1 0:00 0 - -# Shanks says 1979 was all DST. -Rule Para 1980 1991 - Apr 1 0:00 0 - -Rule Para 1980 1988 - Oct 1 0:00 1:00 S +Rule Para 1979 1991 - Apr 1 0:00 0 - Rule Para 1989 only - Oct 22 0:00 1:00 S Rule Para 1990 only - Oct 1 0:00 1:00 S Rule Para 1991 only - Oct 6 0:00 1:00 S @@ -559,9 +540,13 @@ Rule Para 1992 only - Oct 5 0:00 1:00 S Rule Para 1993 only - Mar 31 0:00 0 - Rule Para 1993 1995 - Oct 1 0:00 1:00 S Rule Para 1994 1995 - Feb lastSun 0:00 0 - -Rule Para 1996 1998 - Mar 1 0:00 0 - +Rule Para 1996 only - Mar 1 0:00 0 - +# IATA SSIM (1997-09) says Mar 1; go with Shanks. +Rule Para 1997 only - Feb lastSun 0:00 0 - +Rule Para 1998 only - Mar 1 0:00 0 - Rule Para 1996 max - Oct Sun>=1 0:00 1:00 S -Rule Para 1999 max - Feb lastSat 0:00 0 - +# IATA SSIM (1999-02) says lastSat, not lastSun; go with Shanks. +Rule Para 1999 max - Feb lastSun 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Asuncion -3:50:40 - LMT 1890 -3:50:40 - AMT 1931 Oct 10 # Asuncion Mean Time @@ -611,7 +596,7 @@ Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 # Uruguay # From Paul Eggert (1993-11-18): # Uruguay wins the prize for the strangest peacetime manipulation of the rules. -# From Shanks (1991): +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman gives 1923 Oct 1; go with Shanks. Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS @@ -653,10 +638,10 @@ Rule Uruguay 1988 only - Mar 14 0:00 0 - Rule Uruguay 1988 only - Dec 11 0:00 1:00 S Rule Uruguay 1989 only - Mar 12 0:00 0 - Rule Uruguay 1989 only - Oct 29 0:00 1:00 S +# Shanks says no DST was observed in 1990/1 and 1991/2, +# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA. Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 - Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S -# Shanks's 4th edition (1995) says no DST was observed in 1990/1 and 1991/2, -# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA. Rule Uruguay 1992 only - Oct 18 0:00 1:00 S Rule Uruguay 1993 only - Feb 28 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff --git a/timezone/zone.tab b/timezone/zone.tab index 79257a176e..b5f67e99e0 100644 --- a/timezone/zone.tab +++ b/timezone/zone.tab @@ -1,4 +1,4 @@ -# @(#)zone.tab 1.15 +# @(#)zone.tab 1.16 # # TZ zone descriptions # @@ -78,7 +78,8 @@ BR -0712-04812 America/Araguaina Tocantins BR -0940-03543 America/Maceio Alagoas, Sergipe BR -2332-04637 America/Sao_Paulo S & SE Brazil (BA, GO, DF, MG, ES, RJ, SP, PR, SC, RS) BR -1535-05605 America/Cuiaba Mato Grosso, Mato Grosso do Sul -BR -0846-06354 America/Porto_Velho W Para, Rondonia, Roraima +BR -0846-06354 America/Porto_Velho W Para, Rondonia +BR +0249-06040 America/Boa_Vista Roraima BR -0308-06001 America/Manaus Amazonas BR -0934-06731 America/Porto_Acre Acre BS +2505-07721 America/Nassau @@ -121,7 +122,6 @@ CL -2710-10927 Pacific/Easter Easter Island CM +0403+00942 Africa/Douala CN +4545+12641 Asia/Harbin north Manchuria CN +3114+12128 Asia/Shanghai China coast -CN +2217+11409 Asia/Hong_Kong Hong Kong CN +2934+10635 Asia/Chungking China mountains CN +4348+08735 Asia/Urumqi Tibet & Xinjiang CN +3929+07559 Asia/Kashgar Eastern Turkestan @@ -178,6 +178,7 @@ GT +1438-09031 America/Guatemala GU +1328+14445 Pacific/Guam GW +1151-01535 Africa/Bissau GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong HN +1406-08713 America/Tegucigalpa HR +4548+01558 Europe/Zagreb HT +1832-07220 America/Port-au-Prince @@ -242,12 +243,11 @@ MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives MW -1547+03500 Africa/Blantyre -MX +2105-08646 America/Cancun Eastern Time -MX +1924-09909 America/Mexico_City Central Time +MX +1924-09909 America/Mexico_City Central Time - most locations +MX +2105-08646 America/Cancun Central Time - Quintana Roo MX +2313-10625 America/Mazatlan Mountain Time - most locations MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua -MX +3152-11637 America/Ensenada Pacific Time - most locations -MX +3232-11701 America/Tijuana Pacific Time - north Baja California +MX +3232-11701 America/Tijuana Pacific Time MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia MY +0133+11020 Asia/Kuching Sabah & Sarawak MZ -2558+03235 Africa/Maputo @@ -330,6 +330,7 @@ TK -0922-17114 Pacific/Fakaofo TM +3757+05823 Asia/Ashkhabad TN +3648+01011 Africa/Tunis TO -2110+17510 Pacific/Tongatapu +TP -0833+12535 Asia/Dili TR +4101+02858 Europe/Istanbul TT +1039-06131 America/Port_of_Spain TV -0831+17913 Pacific/Funafuti -- 2.11.4.GIT