diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-07-31 13:33:18 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-07-31 13:33:18 +0000 |
commit | 32c075e1f01849e161724bbd400ba77244e482cc (patch) | |
tree | 5f083a3f352104f32bb6c902d57fa3f294bd8d4d /timezone | |
parent | d6220e9ee38c1c9285221b023346201ec5f511b3 (diff) | |
download | glibc-32c075e1f01849e161724bbd400ba77244e482cc.zip glibc-32c075e1f01849e161724bbd400ba77244e482cc.tar.gz glibc-32c075e1f01849e161724bbd400ba77244e482cc.tar.bz2 |
.
Diffstat (limited to 'timezone')
-rw-r--r-- | timezone/africa | 73 | ||||
-rw-r--r-- | timezone/antarctica | 32 | ||||
-rw-r--r-- | timezone/asia | 315 | ||||
-rw-r--r-- | timezone/australasia | 52 | ||||
-rw-r--r-- | timezone/backward | 3 | ||||
-rw-r--r-- | timezone/checktab.awk | 2 | ||||
-rw-r--r-- | timezone/europe | 254 | ||||
-rw-r--r-- | timezone/ialloc.c | 7 | ||||
-rw-r--r-- | timezone/iso3166.tab | 12 | ||||
-rw-r--r-- | timezone/northamerica | 614 | ||||
-rw-r--r-- | timezone/private.h | 83 | ||||
-rw-r--r-- | timezone/scheck.c | 7 | ||||
-rw-r--r-- | timezone/southamerica | 193 | ||||
-rw-r--r-- | timezone/tzfile.h | 23 | ||||
-rw-r--r-- | timezone/tzselect.ksh | 2 | ||||
-rw-r--r-- | timezone/zdump.c | 37 | ||||
-rw-r--r-- | timezone/zic.c | 709 | ||||
-rw-r--r-- | timezone/zone.tab | 43 |
18 files changed, 784 insertions, 1677 deletions
diff --git a/timezone/africa b/timezone/africa index d73d340..29625df 100644 --- a/timezone/africa +++ b/timezone/africa @@ -1,15 +1,15 @@ -# @(#)africa 8.5 +# @(#)africa 8.1 # <pre> # 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 (2006-03-22): +# From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# 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 @@ -17,8 +17,8 @@ # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1990, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1990, +# and IATA SSIM is the source for entries after 1990. # # Another source occasionally used is Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which @@ -65,7 +65,7 @@ # Algeria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Algeria 1916 only - Jun 14 23:00s 1:00 S -Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 - +Rule Algeria 1916 1919 - Oct Sun<=7 23:00s 0 - Rule Algeria 1917 only - Mar 24 23:00s 1:00 S Rule Algeria 1918 only - Mar 9 23:00s 1:00 S Rule Algeria 1919 only - Mar 1 23:00s 1:00 S @@ -75,7 +75,7 @@ Rule Algeria 1921 only - Mar 14 23:00s 1:00 S Rule Algeria 1921 only - Jun 21 23:00s 0 - Rule Algeria 1939 only - Sep 11 23:00s 1:00 S Rule Algeria 1939 only - Nov 19 1:00 0 - -Rule Algeria 1944 1945 - Apr Mon>=1 2:00 1:00 S +Rule Algeria 1944 1945 - Apr Mon<=7 2:00 1:00 S Rule Algeria 1944 only - Oct 8 2:00 0 - Rule Algeria 1945 only - Sep 16 1:00 0 - Rule Algeria 1971 only - Apr 25 23:00s 1:00 S @@ -86,8 +86,7 @@ Rule Algeria 1978 only - Mar 24 1:00 1:00 S Rule Algeria 1978 only - Sep 22 3:00 0 - Rule Algeria 1980 only - Apr 25 0:00 1:00 S Rule Algeria 1980 only - Oct 31 2:00 0 - -# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's -# more precise 0:09:21. +# Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time @@ -107,8 +106,7 @@ Zone Africa/Luanda 0:52:56 - LMT 1892 1:00 - WAT # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks & Pottenger. +# Whitman says they switched to 1:00 in 1946, not 1934; go with Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Porto-Novo 0:10:28 - LMT 1912 0:00 - GMT 1934 Feb 26 @@ -132,7 +130,7 @@ Zone Africa/Bujumbura 1:57:28 - LMT 1890 2:00 - CAT # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks & Pottenger. +# Whitman says they switched to 1:00 in 1920; go with Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Douala 0:38:48 - LMT 1912 1:00 - WAT @@ -211,14 +209,7 @@ Rule Egypt 1990 1994 - May 1 1:00 1:00 S # IATA (after 1990) says transitions are at 0:00. # Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29. Rule Egypt 1995 max - Apr lastFri 0:00s 1:00 S -Rule Egypt 1995 2005 - Sep lastThu 23:00s 0 - -# From Steffen Thorsen (2006-09-19): -# The Egyptian Gazette, issue 41,090 (2006-09-18), page 1, reports: -# Egypt will turn back clocks by one hour at the midnight of Thursday -# after observing the daylight saving time since May. -# http://news.gom.com.eg/gazette/pdf/2006/09/18/01.pdf -Rule Egypt 2006 only - Sep 21 23:00s 0 - -Rule Egypt 2007 max - Sep lastThu 23:00s 0 - +Rule Egypt 1995 max - Sep lastThu 23:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:00 - LMT 1900 Oct @@ -238,9 +229,9 @@ Zone Africa/Asmera 2:35:32 - LMT 1870 3:00 - EAT # Ethiopia -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that Ethiopia had six narrowly-spaced time zones -# between 1870 and 1890, and that they merged to 38E50 (2:35:20) in 1890. +# From Paul Eggert (1997-10-05): +# Shanks writes that Ethiopia had six narrowly-spaced time zones between +# 1870 and 1890, and that they merged to 38E50 (2:35:20) in 1890. # We'll guess that 38E50 is for Adis Dera. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Addis_Ababa 2:34:48 - LMT 1870 @@ -261,8 +252,7 @@ Zone Africa/Banjul -1:06:36 - LMT 1912 # Ghana # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman says DST was observed from 1931 to ``the present''; -# go with Shanks & Pottenger. +# Whitman says DST was observed from 1931 to ``the present''; go with Shanks. Rule Ghana 1936 1942 - Sep 1 0:00 0:20 GHST Rule Ghana 1936 1942 - Dec 31 0:00 0 GMT # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -298,14 +288,13 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Mar 2:00 - SAST # Liberia -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2001-07-17): # In 1972 Liberia was the last country to switch # from a UTC offset that was not a multiple of 15 or 20 minutes. # Howse reports that it was in honor of their president's birthday. -# Shank & Pottenger report the date as May 1, whereas Howse reports Jan; -# go with Shanks & Pottenger. -# For Liberia before 1972, Shanks & Pottenger report -0:44, whereas Howse and -# Whitman each report -0:44:30; go with the more precise figure. +# 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. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time @@ -335,7 +324,7 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 1:00 Libya CE%sT 1959 2:00 - EET 1982 1:00 Libya CE%sT 1990 May 4 -# The following entries are from Shanks & Pottenger; +# 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 @@ -414,8 +403,8 @@ Zone Africa/Maputo 2:10:20 - LMT 1903 Mar 2:00 - CAT # Namibia -# The 1994-04-03 transition is from Shanks & Pottenger. -# Shanks & Pottenger report no DST after 1998-04; 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 - @@ -499,7 +488,7 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Victoria # Sierra Leone # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman gives Mar 31 - Aug 31 for 1931 on; go with Shanks & Pottenger. +# Whitman gives Mar 31 - Aug 31 for 1931 on; go with Shanks. Rule SL 1935 1942 - Jun 1 0:00 0:40 SLST Rule SL 1935 1942 - Oct 1 0:00 0 WAT Rule SL 1957 1962 - Jun 1 0:00 1:00 SLST @@ -568,6 +557,7 @@ Zone Africa/Lome 0:04:52 - LMT 1893 # Tunisia # From Gwillim Law (2005-04-30): +# # My correspondent, Risto Nykanen, has alerted me to another adoption of DST, # this time in Tunisia. According to Yahoo France News # <http://fr.news.yahoo.com/050426/5/4dumk.html>, in a story attributed to AP @@ -581,12 +571,6 @@ Zone Africa/Lome 0:04:52 - LMT 1893 # <http://www.lapresse.tn/archives/archives280405/actualites/lheure.html> # ... DST for 2005: on: Sun May 1 0h standard time, off: Fri Sept. 30, # 1h standard time. -# -# From Atef Loukil (2006-03-28): -# The daylight saving time will be the same each year: -# Beginning : the last Sunday of March at 02:00 -# Ending : the last Sunday of October at 03:00 ... -# http://www.tap.info.tn/en/index.php?option=com_content&task=view&id=1188&Itemid=50 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S @@ -612,11 +596,8 @@ Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S Rule Tunisia 1990 only - May 1 0:00s 1:00 S Rule Tunisia 2005 only - May 1 0:00s 1:00 S Rule Tunisia 2005 only - Sep 30 1:00s 0 - -Rule Tunisia 2006 max - Mar lastSun 2:00s 1:00 S -Rule Tunisia 2006 max - Oct lastSun 2:00s 0 - -# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's -# more precise 0:09:21. -# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11. +# Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. +# Shanks says the 1911 switch occurred on Mar 9; go with Howse's Mar 11. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Tunis 0:40:44 - LMT 1881 May 12 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time diff --git a/timezone/antarctica b/timezone/antarctica index 2584ae4..8a9ea93 100644 --- a/timezone/antarctica +++ b/timezone/antarctica @@ -1,4 +1,4 @@ -# @(#)antarctica 8.3 +# @(#)antarctica 8.1 # <pre> # From Paul Eggert (1999-11-15): @@ -33,27 +33,19 @@ Rule RussAQ 1996 max - Oct lastSun 2:00s 0 - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule ArgAQ 1964 1966 - Mar 1 0:00 0 - Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S -Rule ArgAQ 1967 only - Apr 2 0:00 0 - -Rule ArgAQ 1967 1968 - Oct Sun>=1 0:00 1:00 S -Rule ArgAQ 1968 1969 - Apr Sun>=1 0:00 0 - +Rule ArgAQ 1967 only - Apr 1 0:00 0 - +Rule ArgAQ 1967 1968 - Oct Sun<=7 0:00 1:00 S +Rule ArgAQ 1968 1969 - Apr Sun<=7 0:00 0 - Rule ArgAQ 1974 only - Jan 23 0:00 1:00 S Rule ArgAQ 1974 only - May 1 0:00 0 - -Rule ChileAQ 1972 1986 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1974 1987 - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1987 only - Apr 12 3:00u 0 - -Rule ChileAQ 1988 1989 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1988 only - Oct Sun>=1 4:00u 1:00 S -Rule ChileAQ 1989 only - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1990 only - Mar 18 3:00u 0 - -Rule ChileAQ 1990 only - Sep 16 4:00u 1:00 S -Rule ChileAQ 1991 1996 - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1991 1997 - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 1997 only - Mar 30 3:00u 0 - -Rule ChileAQ 1998 only - Mar Sun>=9 3:00u 0 - -Rule ChileAQ 1998 only - Sep 27 4:00u 1:00 S -Rule ChileAQ 1999 only - Apr 4 3:00u 0 - -Rule ChileAQ 1999 max - Oct Sun>=9 4:00u 1:00 S -Rule ChileAQ 2000 max - Mar Sun>=9 3:00u 0 - +Rule ArgAQ 1974 1976 - Oct Sun<=7 0:00 1:00 S +Rule ArgAQ 1975 1977 - Apr Sun<=7 0:00 0 - +Rule ChileAQ 1966 1997 - Oct Sun>=9 0:00 1:00 S +Rule ChileAQ 1967 1998 - Mar Sun>=9 0:00 0 - +Rule ChileAQ 1998 only - Sep 27 0:00 1:00 S +Rule ChileAQ 1999 only - Apr 4 0:00 0 - +Rule ChileAQ 1999 max - Oct Sun>=9 0:00 1:00 S +Rule ChileAQ 2000 max - Mar Sun>=9 0:00 0 - # Argentina - year-round bases diff --git a/timezone/asia b/timezone/asia index 04ddc86..446cc16 100644 --- a/timezone/asia +++ b/timezone/asia @@ -1,15 +1,15 @@ -# @(#)asia 8.8 +# @(#)asia 8.1 # <pre> # 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 (2006-03-22): +# From Paul Eggert (1999-03-22): # # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# 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 @@ -17,8 +17,8 @@ # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1990, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1990, +# and IATA SSIM is the source for entries after 1990. # # Another source occasionally used is Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which @@ -61,7 +61,6 @@ # These rules are stolen from the `europe' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S -Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 - @@ -83,11 +82,10 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 4:30 - AFT # Armenia -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger have Yerevan switching to 3:00 (with Russian DST) -# in spring 1991, then to 4:00 with no DST in fall 1995, then -# readopting Russian DST in 1997. Go with Shanks & Pottenger, even -# when they disagree with others. Edgar Der-Danieliantz +# From Paul Eggert (1999-10-29): +# Shanks has Yerevan switching to 3:00 (with Russian DST) in spring 1991, +# 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, @@ -196,15 +194,13 @@ Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jun 9 # CHINA 8 H AHEAD OF UTC ALL OF CHINA, INCL TAIWAN # CHINA 9 H AHEAD OF UTC APR 17 - SEP 10 -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that China (except for Hong Kong and Macau) -# has had a single time zone since 1980 May 1, observing summer DST -# from 1986 through 1991; this contradicts Devine's +# From Paul Eggert (1995-12-19): +# Shanks writes that China has had a single time zone since 1980 May 1, +# observing summer DST from 1986 through 1991; this contradicts Devine's # note about Time magazine, though apparently _something_ happened in 1986. -# Go with Shanks & Pottenger for now. I made up names for the other -# pre-1980 time zones. +# Go with Shanks for now. I made up names for the other pre-1980 time zones. -# From Shanks & Pottenger: +# 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 @@ -212,27 +208,14 @@ Rule Shang 1941 only - Mar 16 0:00 1:00 D Rule PRC 1986 only - May 4 0:00 1:00 D Rule PRC 1986 1991 - Sep Sun>=11 0:00 0 S Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:00 D - +# +# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# # From Anthony Fok (2001-12-20): # BTW, I did some research on-line and found some info regarding these five # historic timezones from some Taiwan websites. And yes, there are official -# Chinese names for these locales (before 1949). -# -# From Jesper Norgaard Welen (2006-07-14): -# I have investigated the timezones around 1970 on the -# http://www.astro.com/atlas site [with provinces and county -# boundaries summarized below].... A few other exceptions were two -# counties on the Sichuan side of the Xizang-Sichuan border, -# counties Dege and Baiyu which lies on the Sichuan side and are -# therefore supposed to be GMT+7, Xizang region being GMT+6, but Dege -# county is GMT+8 according to astro.com while Baiyu county is GMT+6 -# (could be true), for the moment I am assuming that those two -# counties are mistakes in the astro.com data. - - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Chinese names for these locales (before 1949): # Changbai Time ("Long-white Time", Long-white = Heilongjiang area) -# Heilongjiang (except Mohe county), Jilin Zone Asia/Harbin 8:26:44 - LMT 1928 # or Haerbin 8:30 - CHAT 1932 Mar # Changbai Time 8:00 - CST 1940 @@ -240,35 +223,18 @@ Zone Asia/Harbin 8:26:44 - LMT 1928 # or Haerbin 8:30 - CHAT 1980 May 8:00 PRC C%sT # Zhongyuan Time ("Central plain Time") -# most of China Zone Asia/Shanghai 8:05:52 - LMT 1928 8:00 Shang C%sT 1949 8:00 PRC C%sT # Long-shu Time (probably due to Long and Shu being two names of that area) -# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan; -# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong -# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing, -# Yangchun, Yangjiang, Yu'nan, and Yunfu. Zone Asia/Chongqing 7:06:20 - LMT 1928 # or Chungking 7:00 - LONT 1980 May # Long-shu Time 8:00 PRC C%sT # Xin-zang Time ("Xinjiang-Tibet Time") -# The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai; -# the Guangdong counties Xuwen, Haikang, Suixi, Lianjiang, -# Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi; -# east Tibet, including Lhasa, Chamdo, Shigaise, Jimsar, Shawan and Hutubi; -# east Xinjiang, including Urumqi, Turpan, Karamay, Korla, Minfeng, Jinghe, -# Wusu, Qiemo, Xinyan, Wulanwusu, Jinghe, Yumin, Tacheng, Tuoli, Emin, -# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami, -# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan. Zone Asia/Urumqi 5:50:20 - LMT 1928 # or Urumchi 6:00 - URUT 1980 May # Urumqi Time 8:00 PRC C%sT # Kunlun Time -# West Tibet, including Pulan, Aheqi, Shufu, Shule; -# West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, -# Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding, -# and Yarkand. Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar 5:30 - KAST 1940 # Kashgar Time 5:00 - KAST 1980 May @@ -300,7 +266,7 @@ Zone Asia/Hong_Kong 7:36:36 - LMT 1904 Oct 30 # Taiwan -# Shanks & Pottenger write 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. @@ -457,7 +423,7 @@ Zone Asia/Calcutta 5:53:28 - LMT 1880 # Kolkata # Indonesia # -# From Gwillim Law (2001-05-28), overriding Shanks & Pottenger: +# From Gwillim Law (2001-05-28), overriding Shanks: # <http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime> # says that Indonesia's time zones changed on 1988-01-01. Looking at some # time zone maps, I think that must refer to Western Borneo (Kalimantan Barat @@ -465,7 +431,7 @@ Zone Asia/Calcutta 5:53:28 - LMT 1880 # Kolkata # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 -# Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, +# 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 @@ -532,8 +498,8 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # leap year calculation involved. There has never been any serious # plan to change that law.... # -# From Paul Eggert (2006-03-22): -# Go with Shanks & Pottenger before Sept. 1991, and with Pournader thereafter. +# From Paul Eggert (2005-04-05): +# Go with Shanks before September 1991, and with Pournader thereafter. # I used Ed Reingold's cal-persia in GNU Emacs 21.2 to check Persian dates, # stopping after 2037 when 32-bit time_t's overflow. # That cal-persia used Birashk's approximation, which disagrees with the solar @@ -553,14 +519,6 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # Reingold's/Dershowitz' calculator gives correctly the Gregorian date # 2058-03-21 for 1 Farvardin 1437 (astronomical). # -# From Paul Eggert (2006-03-22): -# The above comments about post-2006 transitions may become relevant again, -# if Iran ever resuscitates DST, so we'll leave the comments in. -# -# From Steffen Thorsen (2006-03-22): -# Several of my users have reported that Iran will not observe DST anymore: -# http://www.irna.ir/en/news/view/line-17/0603193812164948.htm -# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Iran 1978 1980 - Mar 21 0:00 1:00 D Rule Iran 1978 only - Oct 21 0:00 0 S @@ -579,8 +537,38 @@ Rule Iran 2001 2003 - Mar 22 0:00 1:00 D Rule Iran 2001 2003 - Sep 22 0:00 0 S Rule Iran 2004 only - Mar 21 0:00 1:00 D Rule Iran 2004 only - Sep 21 0:00 0 S -Rule Iran 2005 only - Mar 22 0:00 1:00 D -Rule Iran 2005 only - Sep 22 0:00 0 S +Rule Iran 2005 2007 - Mar 22 0:00 1:00 D +Rule Iran 2005 2007 - Sep 22 0:00 0 S +Rule Iran 2008 only - Mar 21 0:00 1:00 D +Rule Iran 2008 only - Sep 21 0:00 0 S +Rule Iran 2009 2011 - Mar 22 0:00 1:00 D +Rule Iran 2009 2011 - Sep 22 0:00 0 S +Rule Iran 2012 only - Mar 21 0:00 1:00 D +Rule Iran 2012 only - Sep 21 0:00 0 S +Rule Iran 2013 2015 - Mar 22 0:00 1:00 D +Rule Iran 2013 2015 - Sep 22 0:00 0 S +Rule Iran 2016 only - Mar 21 0:00 1:00 D +Rule Iran 2016 only - Sep 21 0:00 0 S +Rule Iran 2017 2019 - Mar 22 0:00 1:00 D +Rule Iran 2017 2019 - Sep 22 0:00 0 S +Rule Iran 2020 only - Mar 21 0:00 1:00 D +Rule Iran 2020 only - Sep 21 0:00 0 S +Rule Iran 2021 2023 - Mar 22 0:00 1:00 D +Rule Iran 2021 2023 - Sep 22 0:00 0 S +Rule Iran 2024 only - Mar 21 0:00 1:00 D +Rule Iran 2024 only - Sep 21 0:00 0 S +Rule Iran 2025 2027 - Mar 22 0:00 1:00 D +Rule Iran 2025 2027 - Sep 22 0:00 0 S +Rule Iran 2028 2029 - Mar 21 0:00 1:00 D +Rule Iran 2028 2029 - Sep 21 0:00 0 S +Rule Iran 2030 2031 - Mar 22 0:00 1:00 D +Rule Iran 2030 2031 - Sep 22 0:00 0 S +Rule Iran 2032 2033 - Mar 21 0:00 1:00 D +Rule Iran 2032 2033 - Sep 21 0:00 0 S +Rule Iran 2034 2035 - Mar 22 0:00 1:00 D +Rule Iran 2034 2035 - Sep 22 0:00 0 S +Rule Iran 2036 2037 - Mar 21 0:00 1:00 D +Rule Iran 2036 2037 - Sep 21 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1946 # Tehran Mean Time @@ -613,8 +601,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 & Pottenger say Iraq did not observe DST 1992/1997; ignore this. -# +# 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 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -648,7 +635,7 @@ Zone Asia/Baghdad 2:57:40 - LMT 1890 # high on my favorite-country list (and not only because my wife's # family is from India). -# From Shanks & Pottenger: +# 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 @@ -887,15 +874,14 @@ Zone Asia/Jerusalem 2:20:56 - LMT 1880 # of the Japanese wanted to scrap daylight-saving time, as opposed to 30% who # wanted to keep it.) -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that DST in Japan during those years was as follows: +# Shanks writes that daylight saving in Japan during those years was as follows: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Japan 1948 only - May Sun>=1 2:00 1:00 D Rule Japan 1948 1951 - Sep Sat>=8 2:00 0 S Rule Japan 1949 only - Apr Sun>=1 2:00 1:00 D Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D # but the only locations using it (for birth certificates, presumably, since -# their audience is astrologers) were US military bases. For now, assume +# Shanks's audience is astrologers) were US military bases. For now, assume # that for most purposes daylight-saving time was observed; otherwise, what # would have been the point of the 1951 poll? @@ -920,9 +906,8 @@ Rule Japan 1950 1951 - May Sun>=1 2:00 1:00 D # I wrote "ordinance" above, but I don't know how to translate. # In Japanese it's "chokurei", which means ordinance from emperor. -# Shanks & Pottenger claim JST in use since 1896, and that a few -# places (e.g. Ishigaki) use +0800; go with Suzuki. Guess that all -# ordinances took effect on Jan 1. +# Shanks claims JST in use since 1896, and that a few places (e.g. Ishigaki) +# use +0800; go with Suzuki. Guess that all ordinances took effect on Jan 1. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u @@ -953,10 +938,6 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u # For Jordan I have received multiple independent user reports every year # about DST end dates, as the end-rule is different every year. # -# From Steffen Thorsen (2006-10-01), after a heads-up from Hilal Malawi: -# http://www.petranews.gov.jo/nepras/2006/Sep/05/4000.htm -# "Jordan will switch to winter time on Friday, October 27". -# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Jordan 1973 only - Jun 6 0:00 1:00 S Rule Jordan 1973 1975 - Oct 1 0:00 0 - @@ -983,8 +964,7 @@ Rule Jordan 1999 2002 - Sep lastThu 0:00s 0 - Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S Rule Jordan 2003 only - Oct 24 0:00s 0 - Rule Jordan 2004 only - Oct 15 0:00s 0 - -Rule Jordan 2005 only - Sep lastFri 0:00s 0 - -Rule Jordan 2006 max - Oct lastFri 0:00s 0 - +Rule Jordan 2005 max - Sep lastFri 0:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 2:00 Jordan EE%sT @@ -999,11 +979,11 @@ Zone Asia/Amman 2:23:44 - LMT 1931 # Guess that Aqtau and Aqtobe diverged in 1995, since that's the first time # IATA SSIM mentions a third time zone in Kazakhstan. -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2001-10-18): # German Iofis, ELSI, Almaty (2001-10-09) reports that Kazakhstan uses # RussiaAsia rules, instead of switching at 00:00 as the IATA has it. -# Go with Shanks & Pottenger, who have them always using RussiaAsia rules. -# Also go with the following claims of Shanks & Pottenger: +# Go with Shanks, who has them always using RussiaAsia rules. +# Also go with the following claims of Shanks: # # - Kazakhstan did not observe DST in 1991. # - Qyzylorda switched from +5:00 to +6:00 on 1992-01-19 02:00. @@ -1083,7 +1063,7 @@ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk 5:00 - ORAT # Kyrgyzstan (Kirgizstan) -# Transitions through 1991 are from Shanks & Pottenger. +# Transitions through 1991 are from Shanks. # From Paul Eggert (2005-08-15): # According to an article dated today in the Kyrgyzstan Development Gateway @@ -1111,19 +1091,17 @@ Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 # Korea (North and South) -# From Annie I. Bang (2006-07-10) in -# <http://www.koreaherald.co.kr/SITE/data/html_dir/2006/07/10/200607100012.asp>: -# The Ministry of Commerce, Industry and Energy has already -# commissioned a research project [to reintroduce DST] and has said -# the system may begin as early as 2008.... Korea ran a daylight -# saving program from 1949-61 but stopped it during the 1950-53 Korean War. +# From Guy Harris: +# According to someone at the Korean Times in San Francisco, +# Daylight Savings Time was not observed until 1987. He did not know +# at what time of day DST starts or ends. -# From Shanks & Pottenger: +# 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 -Rule ROK 1987 1988 - May Sun>=8 0:00 1:00 D -Rule ROK 1987 1988 - Oct Sun>=8 0:00 0 S +Rule ROK 1987 1988 - May Sun<=14 0:00 1:00 D +Rule ROK 1987 1988 - Oct Sun<=14 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Seoul 8:27:52 - LMT 1890 @@ -1206,8 +1184,8 @@ Zone Asia/Kuala_Lumpur 6:46:46 - LMT 1901 Jan 1 7:30 - MALT 1982 Jan 1 8:00 - MYT # Malaysia Time # Sabah & Sarawak -# From Paul Eggert (2006-03-22): -# The data here are mostly from Shanks & Pottenger, but the 1942, 1945 and 1982 +# From Paul Eggert (2003-11-01): +# The data here are mostly from Shanks, but the 1942, 1945 and 1982 # transition dates are from Mok Ly Yng. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Kuching 7:21:20 - LMT 1926 Mar @@ -1225,8 +1203,8 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # Mongolia -# Shanks & Pottenger say that Mongolia has three time zones, but -# usno1995 and the CIA map Standard Time Zones of the World (2005-03) +# 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. # From Oscar van Vlijmen (1999-12-11): @@ -1296,19 +1274,11 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Male # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S Rule Mongol 1983 only - Oct 1 0:00 0 - -# Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00, -# but McDow says the 2001 switches occurred at 02:00. Also, IATA SSIM -# (1996-09) says 1996-10-25. Go with Shanks & Pottenger through 1998. -# -# Shanks & Pottenger say that the Sept. 1984 through Sept. 1990 switches -# in Choibalsan (more precisely, in Dornod and Sukhbaatar) took place -# at 02:00 standard time, not at 00:00 local time as in the rest of -# the country. That would be odd, and possibly is a result of their -# correction of 02:00 (in the previous edition) not being done correctly -# in the latest edition; so ignore it for now. - -Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 S -Rule Mongol 1984 1998 - Sep lastSun 0:00 0 - +# IATA SSIM says 1990s switches occurred at 00:00, but Shanks (1995) lists +# them at 02:00s, and McDow says the 2001 switches also occurred at 02:00. +# Also, IATA SSIM (1996-09) says 1996-10-25. Go with Shanks through 1998. +Rule Mongol 1985 1998 - Mar lastSun 2:00s 1:00 S +Rule Mongol 1984 1998 - Sep lastSun 2:00s 0 - # IATA SSIM (1999-09) says Mongolia no longer observes DST. Rule Mongol 2001 only - Apr lastSat 2:00 1:00 S Rule Mongol 2001 max - Sep lastSat 2:00 0 - @@ -1434,8 +1404,8 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # I guess more info may be available from the PA's web page (if/when they # have one). -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that Gaza did not observe DST until 1957, but go +# From Paul Eggert (1998-02-25): +# Shanks writes that Gaza did not observe DST until 1957, but we'll go # with Shapir and assume that it observed DST from 1940 through 1947, # and that it used Jordanian rules starting in 1996. # We don't yet need a separate entry for the West Bank, since @@ -1473,23 +1443,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # there is a good chance next year's end date will be around two weeks # earlier--the same goes for Jordan. -# From Steffen Thorsen (2006-08-17): -# I was informed by a user in Bethlehem that in Bethlehem it started the -# same day as Israel, and after checking with other users in the area, I -# was informed that they started DST one day after Israel. I was not -# able to find any authoritative sources at the time, nor details if -# Gaza changed as well, but presumed Gaza to follow the same rules as -# the West Bank. - -# From Steffen Thorsen (2006-09-26): -# according to the Palestine News Network (2006-09-19): -# http://english.pnn.ps/index.php?option=com_content&task=view&id=596&Itemid=5 -# > The Council of Ministers announced that this year its winter schedule -# > will begin early, as of midnight Thursday. It is also time to turn -# > back the clocks for winter. Friday will begin an hour late this week. -# I guess it is likely that next year's date will be moved as well, -# because of the Ramadan. - # The rules for Egypt are stolen from the `africa' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S @@ -1499,13 +1452,10 @@ Rule EgyptAsia 1959 1967 - May 1 1:00 1:00 S Rule EgyptAsia 1959 1965 - Sep 30 3:00 0 - Rule EgyptAsia 1966 only - Oct 1 3:00 0 - -Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S +Rule Palestine 1999 max - Apr Fri>=15 0:00 1:00 S Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 - Rule Palestine 2004 only - Oct 1 1:00 0 - -Rule Palestine 2005 only - Oct 4 2:00 0 - -Rule Palestine 2006 max - Apr 1 0:00 1:00 S -Rule Palestine 2006 only - Sep 22 0:00 0 - -Rule Palestine 2007 max - Oct Fri>=15 0:00 0 - +Rule Palestine 2005 max - Oct 4 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct @@ -1523,21 +1473,7 @@ Zone Asia/Gaza 2:17:52 - LMT 1900 Oct # Philippines, issued a proclamation announcing that 1844-12-30 was to # be immediately followed by 1845-01-01. Robert H. van Gent has a # transcript of the decree in <http://www.phys.uu.nl/~vgent/idl/idl.htm>. -# The rest of the data are from Shanks & Pottenger. - -# From Paul Eggert (2006-04-25): -# Tomorrow's Manila Standard reports that the Philippines Department of -# Trade and Industry is considering adopting DST this June when the -# rainy season begins. See -# <http://www.manilastandardtoday.com/?page=politics02_april26_2006>. -# For now, we'll ignore this, since it's not definite and we lack details. -# -# From Jesper Norgaard Welen (2006-04-26): -# ... claims that Philippines had DST last time in 1990: -# http://story.philippinetimes.com/p.x/ct/9/id/145be20cc6b121c0/cid/3e5bbccc730d258c/ -# [a story dated 2006-04-25 by Cris Larano of Dow Jones Newswires, -# but no details] - +# The rest of this data is from Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Phil 1936 only - Nov 1 0:00 1:00 S Rule Phil 1937 only - Feb 1 0:00 0 - @@ -1597,49 +1533,6 @@ Zone Asia/Singapore 6:55:25 - LMT 1901 Jan 1 # With effect from 12.30 a.m. on 26th October 1996 # Sri Lanka will be six (06) hours ahead of GMT. -# From Jesper Norgaard Welen (2006-04-14), quoting Sri Lanka News Online -# <http://news.sinhalaya.com/wmview.php?ArtID=11002> (2006-04-13): -# 0030 hrs on April 15, 2006 (midnight of April 14, 2006 +30 minutes) -# at present, become 2400 hours of April 14, 2006 (midnight of April 14, 2006). - -# From Peter Apps and Ranga Sirila of Reuters (2006-04-12) in: -# <http://today.reuters.co.uk/news/newsArticle.aspx?type=scienceNews&storyID=2006-04-12T172228Z_01_COL295762_RTRIDST_0_SCIENCE-SRILANKA-TIME-DC.XML> -# [The Tamil Tigers] never accepted the original 1996 time change and simply -# kept their clocks set five and a half hours ahead of Greenwich Mean -# Time (GMT), in line with neighbor India. -# From Paul Eggert (2006-04-18): -# People who live in regions under Tamil control can use TZ='Asia/Calcutta', -# as that zone has agreed with the Tamil areas since our cutoff date of 1970. - -# From K Sethu (2006-04-25): -# I think the abbreviation LKT originated from the world of computers at -# the time of or subsequent to the time zone changes by SL Government -# twice in 1996 and probably SL Government or its standardization -# agencies never declared an abbreviation as a national standard. -# -# I recollect before the recent change the government annoucemments -# mentioning it as simply changing Sri Lanka Standard Time or Sri Lanka -# Time and no mention was made about the abbreviation. -# -# If we look at Sri Lanka Department of Government's "Official News -# Website of Sri Lanka" ... http://www.news.lk/ we can see that they -# use SLT as abbreviation in time stamp at the beginning of each news -# item.... -# -# Within Sri Lanka I think LKT is well known among computer users and -# adminsitrators. In my opinion SLT may not be a good choice because the -# nation's largest telcom / internet operator Sri Lanka Telcom is well -# known by that abbreviation - simply as SLT (there IP domains are -# slt.lk and sltnet.lk). -# -# But if indeed our government has adopted SLT as standard abbreviation -# (that we have not known so far) then it is better that it be used for -# all computers. - -# From Paul Eggert (2006-04-25): -# One possibility is that we wait for a bit for the dust to settle down -# and then see what people actually say in practice. - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Colombo 5:19:24 - LMT 1880 5:19:32 - MMT 1906 # Moratuwa Mean Time @@ -1648,8 +1541,7 @@ Zone Asia/Colombo 5:19:24 - LMT 1880 5:30 1:00 IST 1945 Oct 16 2:00 5:30 - IST 1996 May 25 0:00 6:30 - LKT 1996 Oct 26 0:30 - 6:00 - LKT 2006 Apr 15 0:30 - 5:30 - IST + 6:00 - LKT # Syria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -1684,24 +1576,17 @@ Rule Syria 1993 only - Sep 25 0:00 0 - # 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; (1999-09) says 2000-03-31 and 2001-03-31; -# (2006) says 2006-03-31 and 2006-09-22; -# for now ignore all these claims and go with Shanks & Pottenger, -# except for the 2006-09-22 claim (which seems right for Ramadan). +# ignore all these claims and go with Shanks. Rule Syria 1994 1996 - Apr 1 0:00 1:00 S -Rule Syria 1994 2005 - Oct 1 0:00 0 - +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 -# From Stephen Colebourne (2006-09-18): -# According to IATA data, Syria will change DST on 21st September [21:00 UTC] -# this year [only].... This is probably related to Ramadan, like Egypt. -Rule Syria 2006 only - Sep 22 0:00 0 - -Rule Syria 2007 max - Oct 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Damascus 2:25:12 - LMT 1920 # Dimashq 2:00 Syria EE%sT # Tajikistan -# From Shanks & Pottenger. +# 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 @@ -1716,13 +1601,13 @@ Zone Asia/Bangkok 6:42:04 - LMT 1880 7:00 - ICT # Turkmenistan -# From Shanks & Pottenger. +# From Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Ashgabat 3:53:32 - LMT 1924 May 2 # or Ashkhabad 4:00 - ASHT 1930 Jun 21 # Ashkhabad 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 + 4:00 RussiaAsia TM%sT 1992 Jan 19 2:00 5:00 - TMT # United Arab Emirates @@ -1736,24 +1621,24 @@ 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 - TAST 1982 Apr 1 # Tashkent Time - 5:00 RussiaAsia SAM%sT 1991 Sep 1 # independence + 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00 # Tashkent Time + 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:00 + 6:00 RussiaAsia TAS%sT 1991 Mar 31 2:00s 5:00 RussiaAsia TAS%sT 1991 Sep 1 # independence 5:00 RussiaAsia UZ%sT 1992 + 5:00 RussiaAsia UZ%sT 1993 5:00 - UZT # Vietnam - # 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 & Pottenger: +# 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 2e17bcc..70b8455 100644 --- a/timezone/australasia +++ b/timezone/australasia @@ -1,4 +1,4 @@ -# @(#)australasia 8.3 +# @(#)australasia 8.1 # <pre> # This file also includes Pacific islands. @@ -210,7 +210,7 @@ Zone Indian/Christmas 7:02:52 - LMT 1895 Feb 7:00 - CXT # Christmas Island Time # Cook Is -# From Shanks & Pottenger: +# 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 - @@ -308,7 +308,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 & Pottenger say the following was at 2:00; go with IATA. +# 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 @@ -507,10 +507,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 (2006-03-22): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# 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 @@ -518,8 +518,8 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1990, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1990, +# and IATA SSIM is the source for entries after 1990. # # Another source occasionally used is Edward W. Whitman, World Time Differences, # Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated), which @@ -587,12 +587,6 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # WST for any place operating at a GMTOFF of 8:00 # EST for any place operating at a GMTOFF of 10:00 -# From Chuck Soper (2006-06-01): -# I recently found this Australian government web page on time zones: -# <http://www.australia.gov.au/about-australia-13time> -# And this government web page lists time zone names and abbreviations: -# <http://www.bom.gov.au/climate/averages/tables/daysavtm.shtml> - # From Paul Eggert (2001-04-05), summarizing a long discussion about "EST" # versus "AEST" etc.: # @@ -675,7 +669,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # understood in Australia. # From Paul Eggert (1995-12-19): -# Shanks & Pottenger report 2:00 for all autumn changes in Australia and NZ. +# Shanks reports 2:00 for all autumn changes in Australia and New Zealand. # Mark Prior writes that his newspaper # reports that NSW's fall 1995 change will occur at 2:00, # but Robert Elz says it's been 3:00 in Victoria since 1970 @@ -848,14 +842,14 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # current DST ending dates, no worries. # # Rule Oz 1971 1985 - Oct lastSun 2:00 1:00 - -# Rule Oz 1986 max - Oct Sun>=18 2:00 1:00 - +# Rule Oz 1986 max - Oct Sun<=24 2:00 1:00 - # Rule Oz 1972 only - Feb 27 3:00 0 - # Rule Oz 1973 1986 - Mar Sun>=1 3:00 0 - -# Rule Oz 1987 max - Mar Sun>=15 3:00 0 - +# Rule Oz 1987 max - Mar Sun<=21 3:00 0 - # Zone Australia/Tasmania 10:00 Oz EST # Zone Australia/South 9:30 Oz CST # Zone Australia/Victoria 10:00 Oz EST 1985 Oct lastSun 2:00 -# 10:00 1:00 EST 1986 Mar Sun>=15 3:00 +# 10:00 1:00 EST 1986 Mar Sun<=21 3:00 # 10:00 Oz EST # From Robert Elz (1991-03-06): @@ -881,7 +875,7 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # ... # Rule AS 1971 max - Oct lastSun 2:00 1:00 D # Rule AS 1972 1985 - Mar Sun>=1 3:00 0 C -# Rule AS 1986 1990 - Mar Sun>=15 3:00 0 C +# Rule AS 1986 1990 - Mar Sun<=21 3:00 0 C # Rule AS 1991 max - Mar Sun>=1 3:00 0 C # From Bradley White (1992-03-11): @@ -1074,9 +1068,9 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # shown on clocks on LHI. I guess this means that for 30 minutes at the start # of DST, LHI is actually 1 hour ahead of the rest of NSW. -# From Paul Eggert (2006-03-22): -# For Lord Howe dates we use Shanks & Pottenger through 1989, and -# Lonergan thereafter. For times we use Lonergan. +# From Paul Eggert (2001-02-09): +# For Lord Howe dates we use Shanks through 1989, and Lonergan thereafter. +# For times we use Lonergan. ############################################################################### @@ -1107,16 +1101,16 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # rather than the October 1 value. # From Paul Eggert (1995-12-19); -# Shank & Pottenger report 2:00 for all autumn changes in Australia and NZ. +# Shanks reports 2:00 for all autumn changes in Australia and New Zealand. # Robert Uzgalis writes that the New Zealand Daylight # Savings Time Order in Council dated 1990-06-18 specifies 2:00 standard # 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 (2006-03-22): +# From Paul Eggert (2003-05-26): # The Department of Internal Affairs (DIA) maintains a brief history, # as does Carol Squires; see tz-link.htm for the full references. -# Use these sources in preference to Shanks & Pottenger. +# Use these sources in preference to Shanks. # # For Chatham, IATA SSIM (1991/1999) gives the NZ rules but with # transitions at 2:45 local standard time; this confirms that Chatham @@ -1191,8 +1185,8 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # ``I am certain, having lived there for the past decade, that "Truk" # (now properly known as Chuuk) ... is in the time zone GMT+10.'' # -# Shanks & Pottenger write that Truk switched from UTC+10 to UTC+11 -# on 1978-10-01; ignore this for now. +# Shanks writes that Truk switched from UTC+10 to UTC+11 on 1978-10-01; +# ignore this for now. # From Paul Eggert (1999-10-29): # The Federated States of Micronesia Visitors Board writes in @@ -1285,8 +1279,8 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # on the World Day of Prayer, you would be the first people on Earth # to say your prayers in the morning." -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say the transition was on 1968-10-01; go with Mundell. +# From Paul Eggert (1999-08-12): +# Shanks says the transition was on 1968-10-01; go with Mundell. # From Eric Ulevik (1999-05-03): # Tonga's director of tourism, who is also secretary of the National Millenium diff --git a/timezone/backward b/timezone/backward index 0082440..66fbf30 100644 --- a/timezone/backward +++ b/timezone/backward @@ -1,4 +1,4 @@ -# @(#)backward 8.2 +# @(#)backward 8.1 # This file provides links between current names for time zones # and their old names. Many names changed in late 1993. @@ -8,7 +8,6 @@ Link America/Argentina/Catamarca America/Argentina/ComodRivadavia Link America/Adak America/Atka Link America/Argentina/Buenos_Aires America/Buenos_Aires Link America/Argentina/Catamarca America/Catamarca -Link America/Atikokan America/Coral_Harbour Link America/Argentina/Cordoba America/Cordoba Link America/Tijuana America/Ensenada Link America/Indiana/Indianapolis America/Fort_Wayne diff --git a/timezone/checktab.awk b/timezone/checktab.awk index 80ad7d5..6d53214 100644 --- a/timezone/checktab.awk +++ b/timezone/checktab.awk @@ -1,6 +1,6 @@ # Check tz tables for consistency. -# @(#)checktab.awk 8.1 +# @(#)checktab.awk 1.7 # Contributed by Paul Eggert. diff --git a/timezone/europe b/timezone/europe index b3a3b26..54146d7 100644 --- a/timezone/europe +++ b/timezone/europe @@ -1,14 +1,14 @@ -# @(#)europe 8.6 +# @(#)europe 8.1 # <pre> # 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 (2006-03-22): +# From Paul Eggert (1999-10-29): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# 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 @@ -16,8 +16,8 @@ # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1991, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1991, +# and IATA SSIM is the source for entries afterwards. # # Other sources occasionally used include: # @@ -221,12 +221,11 @@ # (Lords Hansard 11 June 1997 columns 964 to 976) # </a>. -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2001-07-18): # -# For lack of other data, follow Shanks & Pottenger for Eire in 1940-1948. +# For lack of other data, we'll follow Shanks for Eire in 1940-1948. # -# Given Ilieve and Myers's data, the following claims by Shanks & Pottenger -# are incorrect: +# Given Ilieve and Myers's data, the following claims by Shanks are incorrect: # * Wales did not switch from GMT to daylight saving time until # 1921 Apr 3, when they began to conform with the rest of Great Britain. # Actually, Wales was identical after 1880. @@ -238,19 +237,18 @@ # Actually, that date saw the usual switch to summer time. # Standard time was not changed until 1968-10-27 (the clocks didn't change). # -# Here is another incorrect claim by Shanks & Pottenger: +# Here is another incorrect claim by Shanks: # * Jersey, Guernsey, and the Isle of Man did not switch from GMT # to daylight saving time until 1921 Apr 3, when they began to # conform with Great Britain. # S.R.&O. 1916, No. 382 and HO 45/10811/312364 (quoted above) say otherwise. # -# The following claim by Shanks & Pottenger is possible though doubtful; +# The following claim by Shanks is possible though doubtful; # we'll ignore it for now. # * Dublin's 1971-10-31 switch was at 02:00, even though London's was 03:00. # # -# Whitman says Dublin Mean Time was -0:25:21, which is more precise than -# Shanks & Pottenger. +# Whitman says Dublin Mean Time was -0:25:21, which is more precise than Shanks. # Perhaps this was Dunsink Observatory Time, as Dunsink Observatory # (8 km NW of Dublin's center) seemingly was to Dublin as Greenwich was # to London. For example: @@ -420,14 +418,11 @@ Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT # See EU for rules starting in 1996. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s +Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00 GB-Eire %s 1968 Oct 27 1:00 - BST 1971 Oct 31 2:00u 0:00 GB-Eire %s 1996 0:00 EU GMT/BST -Link Europe/London Europe/Jersey -Link Europe/London Europe/Guernsey -Link Europe/London Europe/Isle_of_Man Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 -0:25:21 - DMT 1916 May 21 2:00 -0:25:21 1:00 IST 1916 Oct 1 2:00s @@ -481,7 +476,7 @@ Rule C-Eur 1942 only - Nov 2 2:00s 0 - Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S Rule C-Eur 1943 only - Oct 4 2:00s 0 - Rule C-Eur 1944 only - Apr 3 2:00s 1:00 S -# Whitman gives 1944 Oct 7; go with Shanks & Pottenger. +# Whitman gives 1944 Oct 7; go with Shanks. Rule C-Eur 1944 only - Oct 2 2:00s 0 - Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S Rule C-Eur 1977 only - Sep lastSun 2:00s 0 - @@ -601,12 +596,12 @@ Zone Europe/Andorra 0:06:04 - LMT 1901 # Austria -# From Paul Eggert (2006-03-22): Shanks & Pottenger give 1918-06-16 and +# From Paul Eggert (2003-02-28): Shanks gives 1918-06-16 and # 1945-11-18, but the Austrian Federal Office of Metrology and # Surveying (BEV) gives 1918-09-16 and for Vienna gives the "alleged" # date of 1945-04-12 with no time. For the 1980-04-06 transition -# Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV, -# and guess 02:00 for 1945-04-12. +# Shanks gives 02:00, the BEV 00:00. Go with the BEV, and guess 02:00 +# for 1945-04-12. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Austria 1920 only - Apr 5 2:00s 1:00 S @@ -706,7 +701,7 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 1:00 EU CE%sT # Bosnia and Herzegovina -# see Serbia +# see Serbia and Montenegro # Bulgaria # @@ -718,7 +713,7 @@ Zone Europe/Brussels 0:17:30 - LMT 1880 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Bulg 1979 only - Mar 31 23:00 1:00 S Rule Bulg 1979 only - Oct 1 1:00 0 - -Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S +Rule Bulg 1980 1982 - Apr Sat<=7 23:00 1:00 S Rule Bulg 1980 only - Sep 29 1:00 0 - Rule Bulg 1981 only - Sep 27 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -733,7 +728,7 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 2:00 EU EE%sT # Croatia -# see Serbia +# see Serbia and Montenegro # Cyprus # Please see the `asia' file for Asia/Nicosia. @@ -818,10 +813,10 @@ Zone Atlantic/Faeroe -0:27:04 - LMT 1908 Jan 11 # Torshavn # East Greenland and Franz Josef Land, but we don't know their time zones. # My source for this is Wilhelm Dege's book mentioned under Svalbard. # -# From Paul Eggert (2006-03-22): +# From Paul Eggert (1996-11-22): # Greenland joined the EU as part of Denmark, obtained home rule on 1979-05-01, # and left the EU on 1985-02-01. It therefore should have been using EU -# rules at least through 1984. Shanks & Pottenger say Scoresbysund and Godthab +# rules at least through 1984. Shanks says Scoresbysund and Godthab # used C-Eur rules after 1980, but IATA SSIM (1991/1996) says they use EU # rules since at least 1991. Assume EU rules since 1980. @@ -876,28 +871,24 @@ Zone Atlantic/Faeroe -0:27:04 - LMT 1908 Jan 11 # Torshavn # I heard back from someone stationed at Thule; the time change took place # there at 2:00 AM. -# From Paul Eggert (2006-03-22): -# From 1997 on the CIA map shows Danmarkshavn on GMT; -# the 1995 map as like Godthab. +# From Paul Eggert (2001-11-19): +# The 1997 CIA map shows Danmarkshavn on GMT; the 1995 map as like Godthab. # For lack of better info, assume they were like Godthab before 1996. # startkart.no says Thule does not observe DST, but this is clearly an error, -# so go with Shanks & Pottenger for Thule transitions until this year. -# For 2007 on assume Thule will stay in sync with US DST rules. +# so go with Shanks for all Thule transitions. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D Rule Thule 1991 1992 - Sep lastSun 2:00 0 S -Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D -Rule Thule 1993 2006 - Oct lastSun 2:00 0 S -Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D -Rule Thule 2007 max - Nov Sun>=1 2:00 0 S +Rule Thule 1993 max - Apr Sun>=1 2:00 1:00 D +Rule Thule 1993 max - Oct lastSun 2:00 0 S # # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 -3:00 - WGT 1980 Apr 6 2:00 -3:00 EU WG%sT 1996 0:00 - GMT -Zone America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 # Ittoqqortoormiit +Zone America/Scoresbysund -1:29:00 - LMT 1916 Jul 28 # Ittoqqortoormiit -2:00 - CGT 1980 Apr 6 2:00 -2:00 C-Eur CG%sT 1981 Mar 29 -1:00 EU EG%sT @@ -972,13 +963,13 @@ Zone Europe/Tallinn 1:39:00 - LMT 1880 # Finland # -# From Hannu Strang (1994-09-25 06:03:37 UTC): +# From Hannu Strang (25 Sep 1994 06:03:37 UTC): # Well, here in Helsinki we're just changing from summer time to regular one, # and it's supposed to change at 4am... # -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say Finland has switched at 02:00 standard time -# since 1981. Go with Strang instead. +# From Paul Eggert (25 Sep 1994): +# Shanks says Finland has switched at 02:00 standard time since 1981. +# Go with Strang instead. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Finland 1942 only - Apr 3 0:00 1:00 S @@ -1008,7 +999,7 @@ Link Europe/Helsinki Europe/Mariehamn # -# Shank & Pottenger seem to use `24:00' ambiguously; resolve it with Whitman. +# Shanks seems to use `24:00' ambiguously; we resolve it with Whitman. # 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 - @@ -1022,7 +1013,7 @@ Rule France 1921 only - Oct 25 23:00s 0 - Rule France 1922 only - Mar 25 23:00s 1:00 S # DSH writes that a law of 1923-05-24 specified 3rd Sat in Apr at 23:00 to 1st # Sat in Oct at 24:00; and that in 1930, because of Easter, the transitions -# were Apr 12 and Oct 5. Go with Shanks & Pottenger. +# were Apr 12 and Oct 5. Go with Shanks. Rule France 1922 1938 - Oct Sat>=1 23:00s 0 - Rule France 1923 only - May 26 23:00s 1:00 S Rule France 1924 only - Mar 29 23:00s 1:00 S @@ -1043,8 +1034,8 @@ Rule France 1938 only - Mar 26 23:00s 1:00 S Rule France 1939 only - Apr 15 23:00s 1:00 S Rule France 1939 only - Nov 18 23:00s 0 - Rule France 1940 only - Feb 25 2:00 1:00 S -# The French rules for 1941-1944 were not used in Paris, but Shanks & Pottenger -# write that they were used in Monaco and in many French locations. +# The French rules for 1941-1944 were not used in Paris, but Shanks writes +# that they were used in Monaco and in many French locations. # Le Corre writes that the upper limit of the free zone was Arneguy, Orthez, # Mont-de-Marsan, Bazas, Langon, Lamotte-Montravel, Marouil, La # Rochefoucault, Champagne-Mouton, La Roche-Posay, La Haye-Decartes, @@ -1052,7 +1043,7 @@ Rule France 1940 only - Feb 25 2:00 1:00 S # Paray-le-Monial, Montceau-les-Mines, Chalons-sur-Saone, Arbois, # Dole, Morez, St-Claude, and Collognes (Haute-Savioe). Rule France 1941 only - May 5 0:00 2:00 M # Midsummer -# Shanks & Pottenger say this transition occurred at Oct 6 1:00, +# Shanks says this transition occurred at Oct 6 1:00, # but go with Denis Excoffier (1997-12-12), # who quotes the Ephemerides Astronomiques for 1998 from Bureau des Longitudes # as saying 5/10/41 22hUT. @@ -1065,21 +1056,21 @@ Rule France 1944 only - Apr 3 2:00 2:00 M Rule France 1944 only - Oct 8 1:00 1:00 S Rule France 1945 only - Apr 2 2:00 2:00 M Rule France 1945 only - Sep 16 3:00 0 - -# Shanks & Pottenger give Mar 28 2:00 and Sep 26 3:00; +# Shanks gives Mar 28 2:00 and Sep 26 3:00; # go with Excoffier's 28/3/76 0hUT and 25/9/76 23hUT. Rule France 1976 only - Mar 28 1:00 1:00 S Rule France 1976 only - Sep 26 1:00 0 - -# Shanks & Pottenger give 0:09:20 for Paris Mean Time, and Whitman 0:09:05, +# Shanks gives 0:09 for Paris Mean Time, and Whitman gives 0:09:05, # but Howse quotes the actual French legislation as saying 0:09:21. # Go with Howse. Howse writes that the time in France was officially based # on PMT-0:09:21 until 1978-08-09, when the time base finally switched to UTC. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Paris 0:09:21 - LMT 1891 Mar 15 0:01 0:09:21 - PMT 1911 Mar 11 0:01 # Paris MT -# Shanks & Pottenger give 1940 Jun 14 0:00; go with Excoffier and Le Corre. +# Shanks gives 1940 Jun 14 0:00; go with Excoffier and Le Corre. 0:00 France WE%sT 1940 Jun 14 23:00 # Le Corre says Paris stuck with occupied-France time after the liberation; -# go with Shanks & Pottenger. +# go with Shanks. 1:00 C-Eur CE%sT 1944 Aug 25 0:00 France WE%sT 1945 Sep 16 3:00 1:00 France CE%sT 1977 @@ -1130,23 +1121,23 @@ Zone Europe/Berlin 0:53:28 - LMT 1893 Apr # Gibraltar # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00s +Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00 GB-Eire %s 1957 Apr 14 2:00 1:00 - CET 1982 1:00 EU CE%sT # Greece # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman gives 1932 Jul 5 - Nov 1; go with Shanks & Pottenger. +# Whitman gives 1932 Jul 5 - Nov 1; go with Shanks. Rule Greece 1932 only - Jul 7 0:00 1:00 S Rule Greece 1932 only - Sep 1 0:00 0 - -# Whitman gives 1941 Apr 25 - ?; go with Shanks & Pottenger. +# Whitman gives 1941 Apr 25 - ?; go with Shanks. Rule Greece 1941 only - Apr 7 0:00 1:00 S -# Whitman gives 1942 Feb 2 - ?; go with Shanks & Pottenger. +# Whitman gives 1942 Feb 2 - ?; go with Shanks. Rule Greece 1942 only - Nov 2 3:00 0 - Rule Greece 1943 only - Mar 30 0:00 1:00 S Rule Greece 1943 only - Oct 4 0:00 0 - -# Whitman gives 1944 Oct 3 - Oct 31; go with Shanks & Pottenger. +# Whitman gives 1944 Oct 3 - Oct 31; go with Shanks. Rule Greece 1952 only - Jul 1 0:00 1:00 S Rule Greece 1952 only - Nov 2 0:00 0 - Rule Greece 1975 only - Apr 12 0:00s 1:00 S @@ -1166,7 +1157,7 @@ Zone Europe/Athens 1:34:52 - LMT 1895 Sep 14 2:00 Greece EE%sT 1941 Apr 30 1:00 Greece CE%sT 1944 Apr 4 2:00 Greece EE%sT 1981 - # Shanks & Pottenger say it switched to C-Eur in 1981; + # Shanks says they switched to C-Eur in 1981; # go with EU instead, since Greece joined it on Jan 1. 2:00 EU EE%sT @@ -1229,10 +1220,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 (2006-03-22): -# The Iceland Almanak, Shanks & Pottenger, and Whitman disagree on many points. -# We go with the Almanak, except for one claim from Shanks & Pottenger, namely -# that Reykavik was 21W57 from 1837 to 1908, local mean time before that. +# 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 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 @@ -1270,16 +1261,15 @@ Zone Atlantic/Reykjavik -1:27:24 - LMT 1837 # But these events all occurred before the 1970 cutoff, # so record only the time in Rome. # -# From Paul Eggert (2006-03-22): -# For Italian DST we have three sources: Shanks & Pottenger, Whitman, and -# F. Pollastri +# From Paul Eggert (1996-05-06): +# For Italian DST we have three sources: Shanks, Whitman, and F. Pollastri # <a href="http://toi.iriti.cnr.it/uk/ienitlt.html"> -# Day-light Saving Time in Italy (2006-02-03) +# Day-light Saving Time in Italy (1996-03-14) # </a> # (`FP' below), taken from an Italian National Electrotechnical Institute # publication. When the three sources disagree, guess who's right, as follows: # -# year FP Shanks&P. (S) Whitman (W) Go with: +# year FP Shanks (S) Whitman (W) Go with: # 1916 06-03 06-03 24:00 06-03 00:00 FP & W # 09-30 09-30 24:00 09-30 01:00 FP; guess 24:00s # 1917 04-01 03-31 24:00 03-31 00:00 FP & S @@ -1335,7 +1325,7 @@ Rule Italy 1978 only - Oct 1 0:00s 0 - Rule Italy 1979 only - Sep 30 0:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Rome 0:49:56 - LMT 1866 Sep 22 - 0:49:56 - RMT 1893 Nov 1 0:00s # Rome Mean + 0:49:56 - RMT 1893 Nov # Rome Mean Time 1:00 Italy CE%sT 1942 Nov 2 2:00s 1:00 C-Eur CE%sT 1944 Jul 1:00 Italy CE%sT 1980 @@ -1477,8 +1467,7 @@ Zone Europe/Vilnius 1:41:16 - LMT 1880 2:00 EU EE%sT # Luxembourg -# Whitman disagrees with most of these dates in minor ways; -# go with Shanks & Pottenger. +# Whitman disagrees with most of these dates in minor ways; go with Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Lux 1916 only - May 14 23:00 1:00 S Rule Lux 1916 only - Oct 1 1:00 0 - @@ -1513,7 +1502,7 @@ Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun 1:00 EU CE%sT # Macedonia -# see Serbia +# see Serbia and Montenegro # Malta # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -1525,7 +1514,7 @@ Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 - Rule Malta 1980 only - Mar 31 2:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta +Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta 1:00 Italy CE%sT 1942 Nov 2 2:00s 1:00 C-Eur CE%sT 1945 Apr 2 2:00s 1:00 Italy CE%sT 1973 Mar 31 @@ -1534,9 +1523,9 @@ Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta # Moldova -# From Paul Eggert (2006-03-22): -# A previous version of this database followed Shanks & Pottenger, who write -# that Tiraspol switched to Moscow time on 1992-01-19 at 02:00. +# From Paul Eggert (2001-02-11): +# A previous version of this database followed Shanks, who writes that +# Tiraspol switched to Moscow time on 1992-01-19 at 02:00. # However, this is most likely an error, as Moldova declared independence # on 1991-08-27 (the 1992-01-19 date is that of a Russian decree). # In early 1992 there was large-scale interethnic violence in the area @@ -1561,8 +1550,7 @@ Zone Europe/Chisinau 1:55:20 - LMT 1880 2:00 EU EE%sT # Monaco -# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's -# more precise 0:09:21. +# Shanks gives 0:09 for Paris Mean Time; go with Howse's more precise 0:09:21. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time @@ -1570,9 +1558,6 @@ Zone Europe/Monaco 0:29:32 - LMT 1891 Mar 15 1:00 France CE%sT 1977 1:00 EU CE%sT -# Montenegro -# see Serbia - # Netherlands # Howse writes that the Netherlands' railways used GMT between 1892 and 1940, @@ -1648,8 +1633,7 @@ Zone Europe/Amsterdam 0:19:32 - LMT 1835 1:00 EU CE%sT # Norway -# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks & -# Pottenger. +# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Norway 1916 only - May 22 1:00 1:00 S Rule Norway 1916 only - Sep 30 0:00 0 - @@ -1720,10 +1704,9 @@ Link Europe/Oslo Atlantic/Jan_Mayen # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Poland 1918 1919 - Sep 16 2:00s 0 - Rule Poland 1919 only - Apr 15 2:00s 1:00 S -Rule Poland 1944 only - Apr 3 2:00s 1:00 S -# Whitman gives 1944 Nov 30; go with Shanks & Pottenger. +# Whitman gives 1944 Nov 30; go with Shanks. Rule Poland 1944 only - Oct 4 2:00 0 - -# For 1944-1948 Whitman gives the previous day; go with Shanks & Pottenger. +# For 1944-1948 Whitman gives the previous day; go with Shanks. Rule Poland 1945 only - Apr 29 0:00 1:00 S Rule Poland 1945 only - Nov 1 0:00 0 - # For 1946 on the source is Kazimierz Borkowski, @@ -1779,9 +1762,9 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # DSH writes that despite Decree 1,469 (1915), the change to the clocks was not # done every year, depending on what Spain did, because of railroad schedules. -# Go with Shanks & Pottenger. +# Go with Shanks. Rule Port 1916 only - Jun 17 23:00 1:00 S -# Whitman gives 1916 Oct 31; go with Shanks & Pottenger. +# Whitman gives 1916 Oct 31; go with Shanks. Rule Port 1916 only - Nov 1 1:00 0 - Rule Port 1917 only - Feb 28 23:00s 1:00 S Rule Port 1917 1921 - Oct 14 23:00s 0 - @@ -1797,23 +1780,24 @@ Rule Port 1927 only - Apr 9 23:00s 1:00 S Rule Port 1928 only - Apr 14 23:00s 1:00 S Rule Port 1929 only - Apr 20 23:00s 1:00 S Rule Port 1931 only - Apr 18 23:00s 1:00 S -# Whitman gives 1931 Oct 8; go with Shanks & Pottenger. +# Whitman gives 1931 Oct 8; go with Shanks. Rule Port 1931 1932 - Oct Sat>=1 23:00s 0 - Rule Port 1932 only - Apr 2 23:00s 1:00 S +# Shanks gives 1934 Apr 4; go with Whitman. Rule Port 1934 only - Apr 7 23:00s 1:00 S -# Whitman gives 1934 Oct 5; go with Shanks & Pottenger. +# Whitman gives 1934 Oct 5; go with Shanks. Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 - -# Shanks & Pottenger give 1935 Apr 30; go with Whitman. +# Shanks gives 1935 Apr 30; go with Whitman. Rule Port 1935 only - Mar 30 23:00s 1:00 S Rule Port 1936 only - Apr 18 23:00s 1:00 S -# Whitman gives 1937 Apr 2; go with Shanks & Pottenger. +# Whitman gives 1937 Apr 2; go with Shanks. Rule Port 1937 only - Apr 3 23:00s 1:00 S Rule Port 1938 only - Mar 26 23:00s 1:00 S Rule Port 1939 only - Apr 15 23:00s 1:00 S -# Whitman gives 1939 Oct 7; go with Shanks & Pottenger. +# Whitman gives 1939 Oct 7; go with Shanks. Rule Port 1939 only - Nov 18 23:00s 0 - Rule Port 1940 only - Feb 24 23:00s 1:00 S -# Shanks & Pottenger give 1940 Oct 7; go with Whitman. +# Shanks gives 1940 Oct 7; go with Whitman. Rule Port 1940 1941 - Oct 5 23:00s 0 - Rule Port 1941 only - Apr 5 23:00s 1:00 S Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S @@ -1827,8 +1811,8 @@ Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S Rule Port 1946 only - Oct Sat>=1 23:00s 0 - Rule Port 1947 1949 - Apr Sun>=1 2:00s 1:00 S Rule Port 1947 1949 - Oct Sun>=1 2:00s 0 - -# Shanks & Pottenger say DST was observed in 1950; go with Whitman. -# Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger. +# Shanks says DST was observed in 1950; go with Whitman. +# Whitman gives Oct lastSun for 1952 on; go with Shanks. Rule Port 1951 1965 - Apr Sun>=1 2:00s 1:00 S Rule Port 1951 1965 - Oct Sun>=1 2:00s 0 - Rule Port 1977 only - Mar 27 0:00s 1:00 S @@ -1840,7 +1824,7 @@ Rule Port 1980 only - Mar lastSun 0:00s 1:00 S Rule Port 1981 1982 - Mar lastSun 1:00s 1:00 S Rule Port 1983 only - Mar lastSun 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] -# Shanks & Pottenger say the transition from LMT to WET occurred 1911-05-24; +# Shanks says that the transition from LMT to WET occurred 1911-05-24; # Willett says 1912-01-01. Go with Willett. Zone Europe/Lisbon -0:36:32 - LMT 1884 -0:36:32 - LMT 1912 Jan 1 # Lisbon Mean Time @@ -1893,12 +1877,11 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct # Russia -# From Paul Eggert (2006-03-22): +# From Paul Eggert (1999-11-12): # Except for Moscow after 1919-07-01, I invented the time zone abbreviations. # Moscow time zone abbreviations after 1919-07-01, and Moscow rules after 1991, -# are from Andrey A. Chernov. The rest is from Shanks & Pottenger, -# except we follow Chernov's report that 1992 DST transitions were Sat -# 23:00, not Sun 02:00s. +# are from Andrey A. Chernov. The rest is from Shanks, except we follow +# Chernov's report that 1992 DST transitions were Sat 23:00, not Sun 02:00s. # # From Stanislaw A. Kuzikowski (1994-06-29): # But now it is some months since Novosibirsk is 3 hours ahead of Moscow! @@ -1943,20 +1926,20 @@ Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr 2:00 Russia EE%sT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] -# Respublika Adygeya, Arkhangel'skaya oblast', +# Respublika Adygeya, Arkhangel'skaya oblast', Astrakhanskaya oblast', # Belgorodskaya oblast', Bryanskaya oblast', Vladimirskaya oblast', -# Vologodskaya oblast', Voronezhskaya oblast', +# Volgogradskaya oblast', Vologodskaya oblast', Voronezhskaya oblast', # Respublika Dagestan, Ivanovskaya oblast', Respublika Ingushetiya, # Kabarbino-Balkarskaya Respublika, Respublika Kalmykiya, # Kalyzhskaya oblast', Respublika Karachaevo-Cherkessiya, -# Respublika Kareliya, Respublika Komi, +# Respublika Kareliya, Kirovskaya oblast', Respublika Komi, # Kostromskaya oblast', Krasnodarskij kraj, Kurskaya oblast', # Leningradskaya oblast', Lipetskaya oblast', Respublika Marij El, # Respublika Mordoviya, Moskva, Moskovskaya oblast', # Murmanskaya oblast', Nenetskij avtonomnyj okrug, # Nizhegorodskaya oblast', Novgorodskaya oblast', Orlovskaya oblast', # Penzenskaya oblast', Pskovskaya oblast', Rostovskaya oblast', -# Ryazanskaya oblast', Sankt-Peterburg, +# Ryazanskaya oblast', Sankt-Peterburg, Saratovskaya oblast', # Respublika Severnaya Osetiya, Smolenskaya oblast', # Stavropol'skij kraj, Tambovskaya oblast', Respublika Tatarstan, # Tverskaya oblast', Tyl'skaya oblast', Ul'yanovskaya oblast', @@ -1971,25 +1954,11 @@ Zone Europe/Moscow 2:30:20 - LMT 1880 2:00 Russia EE%sT 1992 Jan 19 2:00s 3:00 Russia MSK/MSD # -# Astrakhanskaya oblast', Kirovskaya oblast', Saratovskaya oblast', -# Volgogradskaya oblast'. Shanks & Pottenger say Kirov is still at +0400 -# but Wikipedia (2006-05-09) says +0300. Perhaps it switched after the -# others? But we have no data. -Zone Europe/Volgograd 2:57:40 - LMT 1920 Jan 3 - 3:00 - TSAT 1925 Apr 6 # Tsaritsyn Time - 3:00 - STAT 1930 Jun 21 # Stalingrad Time - 4:00 - STAT 1961 Nov 11 - 4:00 Russia VOL%sT 1989 Mar 26 2:00s # Volgograd T - 3:00 Russia VOL%sT 1991 Mar 31 2:00s - 4:00 - VOLT 1992 Mar 29 2:00s - 3:00 Russia VOL%sT -# # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Samarskaya oblast', Udmyrtskaya respublika Zone Europe/Samara 3:20:36 - LMT 1919 Jul 1 2:00 - 3:00 - SAMT 1930 Jun 21 - 4:00 - SAMT 1935 Jan 27 - 4:00 Russia KUY%sT 1989 Mar 26 2:00s # Kuybyshev + 3:00 - KUYT 1930 Jun 21 # Kuybyshev + 4:00 Russia KUY%sT 1989 Mar 26 2:00s 3:00 Russia KUY%sT 1991 Mar 31 2:00s 2:00 Russia KUY%sT 1991 Sep 29 2:00s 3:00 - KUYT 1991 Oct 20 3:00 @@ -2015,19 +1984,17 @@ Zone Asia/Omsk 4:53:36 - LMT 1919 Nov 14 5:00 Russia OMS%sT 1992 Jan 19 2:00s 6:00 Russia OMS%sT # -# From Paul Eggert (2006-08-19): I'm guessing about Tomsk here; it's -# not clear when it switched from +7 to +6. -# Novosibirskaya oblast', Tomskaya oblast'. +# Novosibirskaya oblast'. Zone Asia/Novosibirsk 5:31:40 - LMT 1919 Dec 14 6:00 6:00 - NOVT 1930 Jun 21 # Novosibirsk Time 7:00 Russia NOV%sT 1991 Mar 31 2:00s 6:00 Russia NOV%sT 1992 Jan 19 2:00s - 7:00 Russia NOV%sT 1993 May 23 # say Shanks & P. + 7:00 Russia NOV%sT 1993 May 23 # says Shanks 6:00 Russia NOV%sT # # From Oscar van Vlijmen (2001-08-25): [This region consists of] # Kemerovskaya oblast', Krasnoyarskij kraj, -# Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug, +# Tajmyrskij (Dolgano-Nenetskij) avtonomnyj okrug, Tomskaya oblast', # Respublika Tuva, Respublika Khakasiya, Evenkijskij avtonomnyj okrug. Zone Asia/Krasnoyarsk 6:11:20 - LMT 1920 Jan 6 6:00 - KRAT 1930 Jun 21 # Krasnoyarsk Time @@ -2110,7 +2077,7 @@ Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2 11:00 Russia ANA%sT 1992 Jan 19 2:00s 12:00 Russia ANA%sT -# Serbia +# Serbia and Montenegro # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 - CET 1941 Apr 18 23:00 @@ -2118,11 +2085,10 @@ Zone Europe/Belgrade 1:22:00 - LMT 1884 1:00 1:00 CEST 1945 Sep 16 2:00s # Metod Kozelj reports that the legal date of # transition to EU rules was 1982-11-27, for all of Yugoslavia at the time. -# Shanks & Pottenger don't give as much detail, so go with Kozelj. +# Shanks doesn't give as much detail, so go with Kozelj. 1:00 - CET 1982 Nov 27 1:00 EU CE%sT Link Europe/Belgrade Europe/Ljubljana # Slovenia -Link Europe/Belgrade Europe/Podgorica # Montenegro Link Europe/Belgrade Europe/Sarajevo # Bosnia and Herzegovina Link Europe/Belgrade Europe/Skopje # Macedonia Link Europe/Belgrade Europe/Zagreb # Croatia @@ -2131,34 +2097,32 @@ Link Europe/Belgrade Europe/Zagreb # Croatia Link Europe/Prague Europe/Bratislava # Slovenia -# see Serbia +# see Serbia and Montenegro # Spain # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1; -# go with Shanks & Pottenger. +# For 1917-1919 Whitman gives Apr Sat>=1 - Oct Sat>=1; go with Shanks. Rule Spain 1917 only - May 5 23:00s 1:00 S Rule Spain 1917 1919 - Oct 6 23:00s 0 - Rule Spain 1918 only - Apr 15 23:00s 1:00 S Rule Spain 1919 only - Apr 5 23:00s 1:00 S -# Whitman gives 1921 Feb 28 - Oct 14; go with Shanks & Pottenger. +# Whitman gives 1921 Feb 28 - Oct 14; go with Shanks. Rule Spain 1924 only - Apr 16 23:00s 1:00 S -# Whitman gives 1924 Oct 14; go with Shanks & Pottenger. +# Whitman gives 1924 Oct 14; go with Shanks. Rule Spain 1924 only - Oct 4 23:00s 0 - Rule Spain 1926 only - Apr 17 23:00s 1:00 S -# Whitman says no DST in 1929; go with Shanks & Pottenger. +# Whitman says no DST in 1929; go with Shanks. Rule Spain 1926 1929 - Oct Sat>=1 23:00s 0 - Rule Spain 1927 only - Apr 9 23:00s 1:00 S Rule Spain 1928 only - Apr 14 23:00s 1:00 S Rule Spain 1929 only - Apr 20 23:00s 1:00 S -# Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13; -# go with Shanks & Pottenger. +# Whitman gives 1937 Jun 16, 1938 Apr 16, 1940 Apr 13; go with Shanks. Rule Spain 1937 only - May 22 23:00s 1:00 S Rule Spain 1937 1939 - Oct Sat>=1 23:00s 0 - Rule Spain 1938 only - Mar 22 23:00s 1:00 S Rule Spain 1939 only - Apr 15 23:00s 1:00 S Rule Spain 1940 only - Mar 16 23:00s 1:00 S -# Whitman says no DST 1942-1945; go with Shanks & Pottenger. +# Whitman says no DST 1942-1945; go with Shanks. Rule Spain 1942 only - May 2 22:00s 2:00 M # Midsummer Rule Spain 1942 only - Sep 1 22:00s 1:00 S Rule Spain 1943 1946 - Apr Sat>=13 22:00s 2:00 M @@ -2185,7 +2149,7 @@ Rule SpainAfrica 1977 only - Sep 28 0:00 0 - Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S Rule SpainAfrica 1978 only - Aug 4 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00s +Zone Europe/Madrid -0:14:44 - LMT 1901 0:00 Spain WE%sT 1946 Sep 30 1:00 Spain CE%sT 1979 1:00 EU CE%sT @@ -2207,7 +2171,7 @@ Zone Atlantic/Canary -1:01:36 - LMT 1922 Mar # Las Palmas de Gran C. # Sweden -# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger: +# From Ivan Nilsson (2001-04-13), superseding Shanks: # # The law "Svensk forfattningssamling 1878, no 14" about standard time in 1879: # From the beginning of 1879 (that is 01-01 00:00) the time for all @@ -2268,7 +2232,7 @@ Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 # 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: +# 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] @@ -2287,8 +2251,7 @@ Rule Turkey 1921 only - Apr 3 0:00 1:00 S Rule Turkey 1921 only - Oct 3 0:00 0 - Rule Turkey 1922 only - Mar 26 0:00 1:00 S Rule Turkey 1922 only - Oct 8 0:00 0 - -# Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925; -# go with Shanks & Pottenger. +# Whitman gives 1923 Apr 28 - Sep 16 and no DST in 1924-1925; go with Shanks. 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 @@ -2297,8 +2260,7 @@ Rule Turkey 1940 only - Oct 5 0:00 0 - Rule Turkey 1940 only - Dec 1 0:00 1:00 S Rule Turkey 1941 only - Sep 21 0:00 0 - Rule Turkey 1942 only - Apr 1 0:00 1:00 S -# Whitman omits the next two transition and gives 1945 Oct 1; -# go with Shanks & Pottenger. +# Whitman omits the next two transition and gives 1945 Oct 1; go with Shanks. Rule Turkey 1942 only - Nov 1 0:00 0 - Rule Turkey 1945 only - Apr 2 0:00 1:00 S Rule Turkey 1945 only - Oct 8 0:00 0 - @@ -2395,13 +2357,11 @@ Zone Europe/Simferopol 2:16:24 - LMT 1880 3:00 Russia MSK/MSD 1990 3:00 - MSK 1990 Jul 1 2:00 2:00 - EET 1992 -# From Paul Eggert (2006-03-22): +# From Paul Eggert (1999-11-12): # The _Economist_ (1994-05-28, p 45) reports that central Crimea switched # from Kiev to Moscow time sometime after the January 1994 elections. -# Shanks (1999) says ``date of change uncertain'', but implies that it happened -# sometime between the 1994 DST switches. Shanks & Pottenger simply say -# 1994-09-25 03:00, but that can't be right. For now, guess it -# changed in May. +# Shanks says ``date of change uncertain'', but implies that it happened +# sometime between the 1994 DST switches. For now, guess it changed in May. 2:00 E-Eur EE%sT 1994 May # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev. 3:00 E-Eur MSK/MSD 1996 Mar 31 3:00s diff --git a/timezone/ialloc.c b/timezone/ialloc.c index 1fc2035..8a0c701 100644 --- a/timezone/ialloc.c +++ b/timezone/ialloc.c @@ -1,11 +1,6 @@ -/* -** This file is in the public domain, so clarified as of -** 2006-07-17 by Arthur David Olson. -*/ - #ifndef lint #ifndef NOID -static char elsieid[] = "@(#)ialloc.c 8.30"; +static char elsieid[] = "@(#)ialloc.c 8.29"; #endif /* !defined NOID */ #endif /* !defined lint */ diff --git a/timezone/iso3166.tab b/timezone/iso3166.tab index 8bb8231..1cfaf26 100644 --- a/timezone/iso3166.tab +++ b/timezone/iso3166.tab @@ -1,12 +1,12 @@ # ISO 3166 alpha-2 country codes # -# @(#)iso3166.tab 8.3 +# @(#)iso3166.tab 8.1 # -# From Paul Eggert (2006-09-27): +# From Paul Eggert (2004-06-14): # # This file contains a table with the following columns: # 1. ISO 3166-1 alpha-2 country code, current as of -# ISO 3166-1 Newsletter No. V-12 (2006-09-26). See: +# ISO 3166-1 Newsletter No. V-10 (2004-04-26). See: # <a href="http://www.iso.org/iso/en/prods-services/iso3166ma/index.html"> # ISO 3166 Maintenance agency (ISO 3166/MA) # </a>. @@ -70,6 +70,7 @@ CM Cameroon CN China CO Colombia CR Costa Rica +CS Serbia and Montenegro CU Cuba CV Cape Verde CX Christmas Island @@ -99,7 +100,6 @@ GB Britain (UK) GD Grenada GE Georgia GF French Guiana -GG Guernsey GH Ghana GI Gibraltar GL Greenland @@ -122,14 +122,12 @@ HU Hungary ID Indonesia IE Ireland IL Israel -IM Isle of Man IN India IO British Indian Ocean Territory IQ Iraq IR Iran IS Iceland IT Italy -JE Jersey JM Jamaica JO Jordan JP Japan @@ -158,7 +156,6 @@ LY Libya MA Morocco MC Monaco MD Moldova -ME Montenegro MG Madagascar MH Marshall Islands MK Macedonia @@ -207,7 +204,6 @@ PY Paraguay QA Qatar RE Reunion RO Romania -RS Serbia RU Russia RW Rwanda SA Saudi Arabia diff --git a/timezone/northamerica b/timezone/northamerica index 3d80c5e..73e2470 100644 --- a/timezone/northamerica +++ b/timezone/northamerica @@ -1,4 +1,4 @@ -# @(#)northamerica 8.10 +# @(#)northamerica 8.1 # <pre> # also includes Central America and the Caribbean @@ -30,12 +30,12 @@ # That 1883 transition occurred at 12:00 new time, not at 12:00 old time. # See p 46 of David Prerau, Seize the daylight, Thunder's Mouth Press (2005). -# From Paul Eggert (2006-03-22): +# From Paul Eggert (1995-12-19): # A good source for time zone historical data in the US is # Thomas G. Shanks, The American Atlas (5th edition), # San Diego: ACS Publications, Inc. (1991). # Make sure you have the errata sheet; the book is somewhat useless without it. -# It is the source for most of the pre-1991 US entries below. +# It is the source for most of the pre-1991 US and Puerto Rico entries below. # From Paul Eggert (2001-03-06): # Daylight Saving Time was first suggested as a joke by Benjamin Franklin @@ -229,7 +229,7 @@ Zone PST8PDT -8:00 US P%sT # Public law 106-564 (2000-12-23) introduced the abbreviation # "Chamorro Standard Time" for time in Guam and the Northern Marianas. # See the file "australasia". - + # From Arthur David Olson, 2005-08-09 # The following was signed into law on 2005-08-08. # @@ -274,7 +274,7 @@ Zone PST8PDT -8:00 US P%sT # set their watches and clocks on Eastern time." It quotes H.H. "Bubba" # Roberts, city administrator in Phenix City. as saying "We are in the Central # time zone, but we do go by the Eastern time zone because so many people work -# in Columbus." +# in Columbus." # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule NYC 1920 only - Mar lastSun 2:00 1:00 D @@ -301,13 +301,6 @@ Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 # Nebraska, eastern North Dakota, Oklahoma, eastern South Dakota, # western Tennessee, most of Texas, Wisconsin -# From Larry M. Smith (2006-04-26) re Wisconsin: -# http://www.legis.state.wi.us/statutes/Stat0175.pdf ... -# is currently enforced at the 01:00 time of change. Because the local -# "bar time" in the state corresponds to 02:00, a number of citations -# are issued for the "sale of class 'B' alcohol after prohibited -# hours" within the deviated hour of this change every year.... - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER Rule Chicago 1920 only - Jun 13 2:00 1:00 D Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S @@ -328,16 +321,14 @@ Zone America/Chicago -5:50:36 - LMT 1883 Nov 18 12:09:24 Zone America/North_Dakota/Center -6:45:12 - LMT 1883 Nov 18 12:14:48 -7:00 US M%sT 1992 Oct 25 02:00 -6:00 US C%sT -# Morton County, ND, switched from mountain to central time on -# 2003-10-26, except for the area around Mandan which was already central time. -# See <http://dmses.dot.gov/docimages/p63/135818.pdf>. -# Officially this switch also included part of Sioux County, and -# Jones, Mellette, and Todd Counties in South Dakota; -# but in practice these other counties were already observing central time. -# See <http://www.epa.gov/fedrgstr/EPA-IMPACT/2003/October/Day-28/i27056.htm>. -Zone America/North_Dakota/New_Salem -6:45:39 - LMT 1883 Nov 18 12:14:21 - -7:00 US M%sT 2003 Oct 26 02:00 - -6:00 US C%sT +# From Paul Eggert (2006-01-20): +# The following is not implemented yet. +# What is the most populous city in that area? +# From http://www.statoids.com/tus.html (2006-01-20): +# 2003-10-26 02:00: All of Morton County, ND, and the part of Sioux +# County, ND east of ND route 31 moved from MT to CT. (The area +# around Fort Yates in Sioux County and the area around Mandan in +# Morton County were already in CT.) # US mountain time, represented by Denver # @@ -416,8 +407,7 @@ Zone America/Yakutat 14:41:05 - LMT 1867 Oct 18 Zone America/Anchorage 14:00:24 - LMT 1867 Oct 18 -9:59:36 - LMT 1900 Aug 20 12:00 -10:00 - CAT 1942 - -10:00 US CAT/CAWT 1945 Aug 14 23:00u - -10:00 US CAT/CAPT 1946 # Peace + -10:00 US CAT/CAWT 1946 -10:00 - CAT 1967 Apr -10:00 - AHST 1969 -10:00 US AH%sT 1983 Oct 30 2:00 @@ -537,9 +527,9 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 # For a map of Indiana's time zone regions, see: # <a href="http://www.mccsc.edu/time.html"> # What time is it in Indiana? -# </a> (2006-03-01) +# </a> (2005-10-30) # -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2006-01-20): # Since 1970, most of Indiana has been like America/Indiana/Indianapolis, # with the following exceptions: # @@ -559,7 +549,6 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 # # Shanks partitioned Indiana into 345 regions, each with its own time history, # and wrote ``Even newspaper reports present contradictory information.'' -# Those Hoosiers! Such a flighty and changeable people! # Fortunately, most of the complexity occurred before our cutoff date of 1970. # # Other than Indianapolis, the Indiana place names are so nondescript @@ -569,10 +558,8 @@ Zone America/Boise -7:44:49 - LMT 1883 Nov 18 12:15:11 # From Paul Eggert (2005-08-16): # http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006. -# From Nathan Stratton Treadway (2006-03-30): -# http://www.dot.gov/affairs/dot0406.htm [3705 B] # From Deborah Goldsmith (2006-01-18): -# http://dmses.dot.gov/docimages/pdf95/382329_web.pdf [2.9 MB] +# http://dmses.dot.gov/docimages/pdf95/382329_web.pdf # From Paul Eggert (2006-01-20): # It says "DOT is relocating the time zone boundary in Indiana to move Starke, # Pulaski, Knox, Daviess, Martin, Pike, Dubois, and Perry Counties from the @@ -638,7 +625,7 @@ Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53 -5:00 US E%sT 1971 -5:00 - EST 2006 Apr 2 2:00 -6:00 US C%sT -# +# # Pike County, Indiana moved from central to eastern time in 1977, # then switched back in 2006. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER @@ -831,10 +818,10 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 ################################################################################ -# From Paul Eggert (2006-03-22): -# A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# From Paul Eggert (1999-10-29): +# A good source for time zone historical data outside the US is +# 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 @@ -842,8 +829,8 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1990, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1990, +# and IATA SSIM is the source for entries after 1990. # # Other sources occasionally used include: # @@ -891,51 +878,9 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # From Paul Eggert (1994-11-22): # Alas, this sort of thing must be handled by localization software. -# Unless otherwise specified, the data for Canada are all from Shanks -# & Pottenger. - -# From Chris Walton (2006-04-01): -# The British Columbia government announced yesterday that it will -# adjust daylight savings next year to align with changes in the -# U.S. and the rest of Canada.... -# http://www2.news.gov.bc.ca/news_releases_2005-2009/2006AG0014-000330.htm - -# From Chris Walton (2006-04-25): -# Daylight saving time will be extended by four weeks starting in 2007.... -# Here is a news release which was issued today by the Nova Scotia government: -# http://www.gov.ns.ca/news/details.asp?id=20060425004 - -# From Chris Walton (2006-06-26): -# [For New Brunswick] the new legislation dictates that the time change is to -# be done at 02:00 instead of 00:01. -# http://www.gnb.ca/0062/acts/BBA-2006/Chap-19.pdf -# ... -# Manitoba has traditionally changed the clock every fall at 03:00. -# As of 2006, the transition is to take place one hour earlier at 02:00. -# http://web2.gov.mb.ca/laws/statutes/ccsm/o030e.php -# ... -# [Alberta, Ontario, Quebec] will follow US rules. -# http://www.qp.gov.ab.ca/documents/Acts/2006CH03_UNPR.cfm?frm_isbn=0779744934 -# http://www.e-laws.gov.on.ca/DBLaws/Source/Regs/English/2006/R06111_e.htm -# http://www.assnat.qc.ca/eng/37legislature2/Projets-loi/Publics/06-a002.htm -# ... -# P.E.I. will follow US rules. The new legislation is not law yet. -# It passed first reading on April 20.... -# http://www.assembly.pe.ca/bills/pdf_first/62/3/bill-101.pdf -# ... -# Province of Newfoundland and Labrador.... The change is being considered. -# http://www.releases.gov.nl.ca/releases/2006/mpa/0331n01.htm -# ... -# N.W.T. will follow US rules. Whoever maintains the government web site -# does not seem to believe in bookmarks. To see the news release, click the -# following link and search for "Daylight Savings Time Change". Press the -# "Daylight Savings Time Change" link; it will fire off a popup using -# JavaScript. -# http://www.exec.gov.nt.ca/currentnews/currentPR.asp?mode=archive - - - -# From Paul Eggert (2006-04-25): +# Unless otherwise specified, the data for Canada are all from Shanks. + +# From Paul Eggert (2005-12-21): # H. David Matthews and Mary Vincent's map # <a href="http://www.canadiangeographic.ca/Magazine/SO98/geomap.asp"> # "It's about TIME", _Canadian Geographic_ (September-October 1998) @@ -947,10 +892,25 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # information about standard and daylight saving time zones in Canada. # </a> (updated periodically). # Its unofficial information is often taken from Matthews and Vincent. - -# From Paul Eggert (2006-06-27): -# For now, assume all of DST-observing Canada will fall into line with the -# new US DST rules, +# +# CBC News reported that Ontario and Manitoba have announced plans to +# follow the US change, and that Nova Scotia is considering it; see +# <http://www.cbc.ca/news/background/daylightsavingtime/> (2005-10-21). +# CBC news also reported that Prince Edward Island is the first +# province in Atlantic Canada to follow the US change, and that Quebec +# had agreed; see <http://www.cbc.ca/pei/story/pe_daylight_20051207.html> +# (2005-12-07). +# +# To reflect all this, the Canada and Winn rules have been adjusted to +# agree with the 2007 US change. This means we assume most of Canada +# will fall into line. However, Alberta, British Columbia, +# Newfoundland, Northwest Territories, and Yukon already have separate +# rules in our database, so for now we'll leave them alone, which +# means that we currently assume these regions will not change their +# rules and will disagree with the US starting in 2007. This +# assumption is probably incorrect, with the possible exception of +# Newfoundland. We plan to adjust the Edm, Vanc, StJohns, and NT_YK +# rules as the corresponding provinces make their announcements. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Canada 1918 only - Apr 14 2:00 1:00 D @@ -965,7 +925,7 @@ Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D Rule Canada 2007 max - Nov Sun>=1 2:00 0 S -# Newfoundland and Labrador +# Newfoundland (and far southeast Labrador) # From Paul Eggert (2000-10-02): # Matthews and Vincent (1998) write that Labrador should use NST/NDT, @@ -976,21 +936,20 @@ Rule Canada 2007 max - Nov Sun>=1 2:00 0 S # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule StJohns 1917 only - Apr 8 2:00 1:00 D Rule StJohns 1917 only - Sep 17 2:00 0 S -# Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks & Pottenger. +# Whitman gives 1919 Apr 5 and 1920 Apr 5; go with Shanks. Rule StJohns 1919 only - May 5 23:00 1:00 D Rule StJohns 1919 only - Aug 12 23:00 0 S -# For 1931-1935 Whitman gives Apr same date; go with Shanks & Pottenger. +# For 1931-1935 Whitman gives Apr same date; go with Shanks. Rule StJohns 1920 1935 - May Sun>=1 23:00 1:00 D Rule StJohns 1920 1935 - Oct lastSun 23:00 0 S -# For 1936-1941 Whitman gives May Sun>=8 and Oct Sun>=1; go with Shanks & -# Pottenger. +# For 1936-1941 Whitman gives May Sun>=8 and Oct Sun>=1; go with Shanks. Rule StJohns 1936 1941 - May Mon>=9 0:00 1:00 D Rule StJohns 1936 1941 - Oct Mon>=2 0:00 0 S # Whitman gives the following transitions: # 1942 03-01/12-31, 1943 05-30/09-05, 1944 07-10/09-02, 1945 01-01/10-07 -# but go with Shanks & Pottenger and assume they used Canadian rules. +# but go with Shanks and assume they used Canadian rules. # For 1946-9 Whitman gives May 5,4,9,1 - Oct 1,5,3,2, and for 1950 he gives -# Apr 30 - Sep 24; go with Shanks & Pottenger. +# Apr 30 - Sep 24; go with Shanks. Rule StJohns 1946 1950 - May Sun>=8 2:00 1:00 D Rule StJohns 1946 1950 - Oct Sun>=2 2:00 0 S Rule StJohns 1951 1986 - Apr lastSun 2:00 1:00 D @@ -1000,12 +959,9 @@ Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S # INMS (2000-09-12) says that, since 1988 at least, Newfoundland switches # at 00:01 local time. For now, assume it started in 1987. Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D -Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S +Rule StJohns 1987 max - Oct lastSun 0:01 0 S Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD -Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D -Rule StJohns 2007 max - Mar Sun>=8 0:01 1:00 D -Rule StJohns 2007 max - Nov Sun>=1 0:01 0 S -# +Rule StJohns 1989 max - Apr Sun>=1 0:01 1:00 D # St John's has an apostrophe, but Posix file names can't have apostrophes. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/St_Johns -3:30:52 - LMT 1884 @@ -1033,13 +989,12 @@ Zone America/Goose_Bay -4:01:40 - LMT 1884 # Happy Valley-Goose Bay # west Labrador, Nova Scotia, Prince Edward I -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that since 1970 most of this region has been like -# Halifax. Many locales did not observe peacetime DST until 1972; +# From Paul Eggert (1996-06-12): +# Shanks writes that since 1970 most of this region has been like Halifax. +# Many locales did not observe peacetime DST until 1972; # Glace Bay, NS is the largest that we know of. -# Shanks & Pottenger also write that Liverpool, NS was the only town -# in Canada to observe DST in 1971 but not 1970; for now we'll assume -# this is a typo. +# Shanks also writes that Liverpool, NS was the only town in Canada to observe +# DST in 1971 but not 1970; for now we'll assume this is a typo. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Halifax 1916 only - Apr 1 0:00 1:00 D @@ -1105,7 +1060,10 @@ Zone America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 # <http://www.gnb.ca/0062/PDF-acts/t-06.pdf> says they change at 00:01, and # <http://www.canlii.org/nb/laws/sta/t-6/20030127/whole.html> makes it # clear that this has been the case since at least 1993. -# For now, assume it started in 1993. +# For now, assume it started in 1993. The Office of the Premier announced +# <http://www.gnb.ca/cnb/news/pre/2005e1737pr.htm> (2005-12-23) +# that they will bring forward proposed amendments to harmonize with the US; +# for now assume that this will happen, but they'll still switch at 00:01. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D @@ -1118,9 +1076,11 @@ Rule Moncton 1940 only - May 19 1:00 1:00 D Rule Moncton 1941 only - May 4 1:00 1:00 D Rule Moncton 1946 1972 - Apr lastSun 2:00 1:00 D Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S -Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S +Rule Moncton 1956 1972 - Oct lastSun 2:00 0 S Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S +Rule Moncton 2007 max - Mar Sun>=8 0:01 1:00 D +Rule Moncton 2007 max - Nov Sun>=1 0:01 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 -5:00 - EST 1902 Jun 15 @@ -1129,79 +1089,13 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 -4:00 Canada A%sT 1946 -4:00 Moncton A%sT 1973 -4:00 Canada A%sT 1993 - -4:00 Moncton A%sT 2007 - -4:00 Canada A%sT + -4:00 Moncton A%sT -# Quebec - -# From Paul Eggert (2006-07-09): -# Shanks & Pottenger write that since 1970 most of Quebec has been -# like Montreal. - -# From Paul Eggert (2006-06-27): -# Matthews and Vincent (1998) also write that Quebec east of the -63 -# meridian is supposed to observe AST, but residents as far east as -# Natashquan use EST/EDT, and residents east of Natashquan use AST. -# In "Official time in Quebec" the Quebec department of justice writes in -# http://www.justice.gouv.qc.ca/english/publications/generale/temps-regl-1-a.htm -# that "The residents of the Municipality of the -# Cote-Nord-du-Golfe-Saint-Laurent and the municipalities of Saint-Augustin, -# Bonne-Esperance and Blanc-Sablon apply the Official Time Act as it is -# written and use Atlantic standard time all year round. The same applies to -# the residents of the Native facilities along the lower North Shore." -# <http://www.assnat.qc.ca/eng/37legislature2/Projets-loi/Publics/06-a002.htm> -# says this common practice was codified into law as of 2007. -# For lack of better info, guess this practice began around 1970, contra to -# Shanks & Pottenger who have this region observing AST/ADT. +# Ontario, Quebec -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mont 1917 only - Mar 25 2:00 1:00 D -Rule Mont 1917 only - Apr 24 0:00 0 S -Rule Mont 1919 only - Mar 31 2:30 1:00 D -Rule Mont 1919 only - Oct 25 2:30 0 S -Rule Mont 1920 only - May 2 2:30 1:00 D -Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S -Rule Mont 1921 only - May 1 2:00 1:00 D -Rule Mont 1922 only - Apr 30 2:00 1:00 D -Rule Mont 1924 only - May 17 2:00 1:00 D -Rule Mont 1924 1926 - Sep lastSun 2:30 0 S -Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D -# The 1927-to-1937 rules can be expressed more simply as -# Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D -# Rule Mont 1927 1937 - Sep lastSat 24:00 0 S -# The rules below avoid use of 24:00 -# (which pre-1998 versions of zic cannot handle). -Rule Mont 1927 only - May 1 0:00 1:00 D -Rule Mont 1927 1932 - Sep lastSun 0:00 0 S -Rule Mont 1928 1931 - Apr lastSun 0:00 1:00 D -Rule Mont 1932 only - May 1 0:00 1:00 D -Rule Mont 1933 1940 - Apr lastSun 0:00 1:00 D -Rule Mont 1933 only - Oct 1 0:00 0 S -Rule Mont 1934 1939 - Sep lastSun 0:00 0 S -Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D -Rule Mont 1945 1948 - Sep lastSun 2:00 0 S -Rule Mont 1949 1950 - Oct lastSun 2:00 0 S -Rule Mont 1951 1956 - Sep lastSun 2:00 0 S -Rule Mont 1957 1973 - Oct lastSun 2:00 0 S - -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Blanc-Sablon -3:48:28 - LMT 1884 - -4:00 Canada A%sT 1970 - -4:00 - AST -Zone America/Montreal -4:54:16 - LMT 1884 - -5:00 Mont E%sT 1918 - -5:00 Canada E%sT 1919 - -5:00 Mont E%sT 1942 Feb 9 2:00s - -5:00 Canada E%sT 1946 - -5:00 Mont E%sT 1974 - -5:00 Canada E%sT - - -# Ontario - -# From Paul Eggert (2006-07-09): -# Shanks & Pottenger write that since 1970 most of Ontario has been like -# Toronto. +# From Paul Eggert (1996-06-12): +# Shanks writes that since 1970 most of Ontario has been like Toronto, +# and most of Quebec has been like Montreal. # Thunder Bay skipped DST in 1973. # Many smaller locales did not observe peacetime DST until 1974; # Nipigon (EST) and Rainy River (CST) are the largest that we know of. @@ -1231,46 +1125,50 @@ Zone America/Montreal -4:54:16 - LMT 1884 # 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 says that Atikokan has agreed with +# Rainy River ever since standard time was introduced. + # From Paul Eggert (2000-10-02): # Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and # New Osnaburgh observe CST all year, that Big Trout Lake observes # CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in # violation of the official Ontario rules. -# -# From Paul Eggert (2006-07-09): -# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the -# 2005-07-21 Chronicle-Journal, which said: -# -# The clocks in Atikokan stay set on standard time year-round. -# This means they spend about half the time on central time and -# the other half on eastern time. -# -# For the most part, the system works, Mayor Dennis Brown said. -# -# "The majority of businesses in Atikokan deal more with Eastern -# Canada, but there are some that deal with Western Canada," he -# said. "I don't see any changes happening here." -# -# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang -# [New Osnaburgh] follow the same practice." - -# From Garry McKinnon (2006-07-14) via Chris Walton: -# I chatted with a member of my board who has an outstanding memory -# and a long history in Atikokan (and in the telecom industry) and he -# can say for certain that Atikokan has been practicing the current -# time keeping since 1952, at least. - -# From Paul Eggert (2006-07-17): -# Shanks & Pottenger say that Atikokan has agreed with Rainy River -# ever since standard time was introduced, but the information from -# McKinnon sounds more authoritative. For now, assume that Atikokan -# switched to EST immediately after WWII era daylight saving time -# ended. This matches the old (less-populous) America/Coral_Harbour -# entry since our cutoff date of 1970, so we can move -# America/Coral_Harbour to the 'backward' file. +# They also write that Quebec east of the -63 meridian is supposed to +# observe AST, but residents as far east as Natashquan use EST/EDT, +# and residents east of Natashquan use AST. +# We probably need Zones for far east Quebec and for Atikokan, +# but we don't know when their practices started. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Mont 1917 only - Mar 25 2:00 1:00 D +Rule Mont 1917 only - Apr 24 0:00 0 S +Rule Mont 1919 only - Mar 31 2:30 1:00 D +Rule Mont 1919 only - Oct 25 2:30 0 S +Rule Mont 1920 only - May 2 2:30 1:00 D +Rule Mont 1920 1922 - Oct Sun>=1 2:30 0 S +Rule Mont 1921 only - May 1 2:00 1:00 D +Rule Mont 1922 only - Apr 30 2:00 1:00 D +Rule Mont 1924 only - May 17 2:00 1:00 D +Rule Mont 1924 1926 - Sep lastSun 2:30 0 S +Rule Mont 1925 1926 - May Sun>=1 2:00 1:00 D +# The 1927-to-1937 rules can be expressed more simply as +# Rule Mont 1927 1937 - Apr lastSat 24:00 1:00 D +# Rule Mont 1927 1937 - Sep lastSat 24:00 0 S +# The rules below avoid use of 24:00 +# (which pre-1998 versions of zic cannot handle). +Rule Mont 1927 only - May 1 0:00 1:00 D +Rule Mont 1927 1932 - Sep lastSun 0:00 0 S +Rule Mont 1928 1931 - Apr lastSun 0:00 1:00 D +Rule Mont 1932 only - May 1 0:00 1:00 D +Rule Mont 1933 1940 - Apr lastSun 0:00 1:00 D +Rule Mont 1933 only - Oct 1 0:00 0 S +Rule Mont 1934 1939 - Sep lastSun 0:00 0 S +Rule Mont 1946 1973 - Apr lastSun 2:00 1:00 D +Rule Mont 1945 1948 - Sep lastSun 2:00 0 S +Rule Mont 1949 1950 - Oct lastSun 2:00 0 S +Rule Mont 1951 1956 - Sep lastSun 2:00 0 S +Rule Mont 1957 1973 - Oct lastSun 2:00 0 S + Rule Toronto 1919 only - Mar 30 23:30 1:00 D Rule Toronto 1919 only - Oct 26 0:00 0 S Rule Toronto 1920 only - May 2 2:00 1:00 D @@ -1278,8 +1176,7 @@ Rule Toronto 1920 only - Sep 26 0:00 0 S Rule Toronto 1921 only - May 15 2:00 1:00 D Rule Toronto 1921 only - Sep 15 2:00 0 S Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D -# Shanks & Pottenger say 1923-09-19; assume it's a typo and that "-16" -# was meant. +# Shanks says 1923-09-19; assume it's a typo and that "-16" was meant. Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D # The 1927-to-1939 rules can be expressed more simply as @@ -1303,10 +1200,9 @@ Rule Toronto 1949 only - Nov lastSun 0:00 0 S Rule Toronto 1950 1973 - Apr lastSun 2:00 1:00 D Rule Toronto 1950 only - Nov lastSun 2:00 0 S Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S -# Shanks & Pottenger say Toronto ended DST a week early in 1971, -# namely on 1971-10-24, but Mark Brader wrote (2003-05-31) that this -# is wrong, and that he had confirmed it by checking the 1971-10-30 -# Toronto Star, which said that DST was ending 1971-10-31 as usual. +# Shanks says Toronto ended DST a week early in 1971, namely on 1971-10-24, +# but Mark Brader wrote (2003-05-31) that he checked the 1971-10-30 issue +# of the Toronto Star, and it said that DST ended 1971-10-31 as usual. Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S # From Paul Eggert (2003-07-27): @@ -1328,6 +1224,13 @@ Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S # months for the remainder of the war years. # Zone NAME GMTOFF RULES FORMAT [UNTIL] +Zone America/Montreal -4:54:16 - LMT 1884 + -5:00 Mont E%sT 1918 + -5:00 Canada E%sT 1919 + -5:00 Mont E%sT 1942 Feb 9 2:00s + -5:00 Canada E%sT 1946 + -5:00 Mont E%sT 1974 + -5:00 Canada E%sT Zone America/Toronto -5:17:32 - LMT 1895 -5:00 Canada E%sT 1919 -5:00 Toronto E%sT 1942 Feb 9 2:00s @@ -1345,38 +1248,14 @@ Zone America/Nipigon -5:53:04 - LMT 1895 -5:00 Canada E%sT 1940 Sep 29 -5:00 1:00 EDT 1942 Feb 9 2:00s -5:00 Canada E%sT -Zone America/Rainy_River -6:18:16 - LMT 1895 +Zone America/Rainy_River -6:17:56 - LMT 1895 -6:00 Canada C%sT 1940 Sep 29 -6:00 1:00 CDT 1942 Feb 9 2:00s -6:00 Canada C%sT -Zone America/Atikokan -6:06:28 - LMT 1895 - -6:00 Canada C%sT 1940 Sep 29 - -6:00 1:00 CDT 1942 Feb 9 2:00s - -6:00 Canada C%sT 1945 Sep 30 2:00 - -5:00 - EST # Manitoba -# From Rob Douglas (2006-04-06): -# the old Manitoba Time Act - as amended by Bill 2, assented to -# March 27, 1987 ... said ... -# "between two o'clock Central Standard Time in the morning of -# the first Sunday of April of each year and two o'clock Central -# Standard Time in the morning of the last Sunday of October next -# following, one hour in advance of Central Standard Time."... -# I believe that the English legislation [of the old time act] had = -# been assented to (March 22, 1967).... -# Also, as far as I can tell, there was no order-in-council varying -# the time of Daylight Saving Time for 2005 and so the provisions of -# the 1987 version would apply - the changeover was at 2:00 Central -# Standard Time (i.e. not until 3:00 Central Daylight Time). - -# From Paul Eggert (2006-04-10): -# Shanks & Pottenger say Manitoba switched at 02:00 (not 02:00s) -# starting 1966. Since 02:00s is clearly correct for 1967 on, assume -# it was also 02:00s in 1966. - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Winn 1916 only - Apr 23 0:00 1:00 D Rule Winn 1916 only - Sep 17 0:00 0 S @@ -1399,13 +1278,18 @@ Rule Winn 1959 only - Oct lastSun 2:00 0 S Rule Winn 1960 only - Sep lastSun 2:00 0 S Rule Winn 1963 only - Apr lastSun 2:00 1:00 D Rule Winn 1963 only - Sep 22 2:00 0 S -Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D -Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S -Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D +Rule Winn 1966 1986 - Apr lastSun 2:00 1:00 D +Rule Winn 1966 1986 - Oct lastSun 2:00 0 S +Rule Winn 1987 2006 - Apr Sun>=1 2:00s 1:00 D +# From Paul Eggert (2000-10-02): +# INMS (2000-09-12) says that, since 1988 at least, Manitoba switches from +# DST at 03:00 local time. For now, assume it started in 1987. +Rule Winn 1987 2006 - Oct lastSun 2:00s 0 S +Rule Winn 2007 max - Mar Sun>=8 2:00s 1:00 D +Rule Winn 2007 max - Nov Sun>=1 2:00s 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 - -6:00 Winn C%sT 2006 - -6:00 Canada C%sT + -6:00 Winn C%sT # Saskatchewan @@ -1424,8 +1308,8 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 # Willett (1914-03) notes that DST "has been in operation ... in the # City of Moose Jaw, Saskatchewan, for one year." -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say that since 1970 this region has mostly been as Regina. +# From Paul Eggert (2000-10-02): +# Shanks writes that since 1970 most of this region has been like Regina. # Some western towns (e.g. Swift Current) switched from MST/MDT to CST in 1972. # Other western towns (e.g. Lloydminster) are like Edmonton. # Matthews and Vincent (1998) write that Denare Beach and Creighton @@ -1457,11 +1341,6 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16 # rules any more; all other districts appear to have used CST year round # since sometime in the 1960s. -# From Chris Walton (2006-06-26): -# The Saskatchewan time act which was last updated in 1996 is about 30 pages -# long and rather painful to read. -# http://www.qp.gov.sk.ca/documents/English/Statutes/Statutes/T14.pdf - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Regina 1918 only - Apr 14 2:00 1:00 D Rule Regina 1918 only - Oct 31 2:00 0 S @@ -1516,18 +1395,17 @@ Rule Edm 1967 only - Oct lastSun 2:00 0 S Rule Edm 1969 only - Apr lastSun 2:00 1:00 D Rule Edm 1969 only - Oct lastSun 2:00 0 S Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D -Rule Edm 1972 2006 - Oct lastSun 2:00 0 S +Rule Edm 1972 max - Oct lastSun 2:00 0 S +Rule Edm 1987 max - Apr Sun>=1 2:00 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Edmonton -7:33:52 - LMT 1906 Sep - -7:00 Edm M%sT 1987 - -7:00 Canada M%sT + -7:00 Edm M%sT # British Columbia -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger write that since 1970 most of this region has -# been like Vancouver. +# From Paul Eggert (2000-10-02): +# Shanks writes that since 1970 most of this region has been like Vancouver. # Dawson Creek uses MST. Much of east BC is like Edmonton. # Matthews and Vincent (1998) write that Creston is like Dawson Creek. @@ -1540,11 +1418,11 @@ Rule Vanc 1945 only - Sep 30 2:00 0 S Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D Rule Vanc 1946 only - Oct 13 2:00 0 S Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S -Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S +Rule Vanc 1962 max - Oct lastSun 2:00 0 S +Rule Vanc 1987 max - Apr Sun>=1 2:00 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Vancouver -8:12:28 - LMT 1884 - -8:00 Vanc P%sT 1987 - -8:00 Canada P%sT + -8:00 Vanc P%sT Zone America/Dawson_Creek -8:00:56 - LMT 1884 -8:00 Canada P%sT 1947 -8:00 Vanc P%sT 1972 Aug 30 2:00 @@ -1553,7 +1431,7 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # Northwest Territories, Nunavut, Yukon -# From Paul Eggert (2006-03-22): +# From Paul Eggert (1999-10-29): # Dawson switched to PST in 1973. Inuvik switched to MST in 1979. # Mathew Englander (1996-10-07) gives the following refs: # * 1967. Paragraph 28(34)(g) of the Interpretation Act, S.C. 1967-68, @@ -1562,12 +1440,7 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # * C.O. 1973/214 switched Yukon to PST on 1973-10-28 00:00. # * O.I.C. 1980/02 established DST. # * O.I.C. 1987/056 changed DST to Apr firstSun 2:00 to Oct lastSun 2:00. -# Shanks & Pottenger say Yukon's 1973-10-28 switch was at 2:00; go -# with Englander. -# From Chris Walton (2006-06-26): -# Here is a link to the old daylight saving portion of the interpretation -# act which was last updated in 1987: -# http://www.gov.yk.ca/legislation/regs/oic1987_056.pdf +# Shanks says Yukon's 1973-10-28 switch was at 2:00; go with Englander. # From Rives McDow (1999-09-04): # Nunavut ... moved ... to incorporate the whole territory into one time zone. @@ -1676,10 +1549,6 @@ Zone America/Dawson_Creek -8:00:56 - LMT 1884 # For lack of better information, assume that Southampton Island observed # daylight saving only during wartime. -# From Chris Walton (2006-07-19): -# The government of Yukon Territory ... recently announced it will extend -# daylight saving in 2007.... http://www.gov.yk.ca/news/2006/06-164.html - # 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 @@ -1691,8 +1560,8 @@ Rule NT_YK 1945 only - Sep 30 2:00 0 S Rule NT_YK 1965 only - Apr lastSun 0:00 2:00 DD Rule NT_YK 1965 only - Oct lastSun 2:00 0 S Rule NT_YK 1980 1986 - Apr lastSun 2:00 1:00 D -Rule NT_YK 1980 2006 - Oct lastSun 2:00 0 S -Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D +Rule NT_YK 1980 max - Oct lastSun 2:00 0 S +Rule NT_YK 1987 max - Apr Sun>=1 2:00 1:00 D # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Pangnirtung -4:22:56 - LMT 1884 -4:00 NT_YK A%sT 1995 Apr Sun>=1 2:00 @@ -1703,11 +1572,10 @@ Zone America/Iqaluit -4:33:52 - LMT 1884 # Frobisher Bay before 1987 -5:00 NT_YK E%sT 1999 Oct 31 2:00 -6:00 Canada C%sT 2000 Oct 29 2:00 -5:00 Canada E%sT -# Now subsumed by America/Atikokan. -#Zone America/Coral_Harbour -5:32:40 - LMT 1884 -# -5:00 NT_YK E%sT 1946 -# -5:00 - EST -Zone America/Rankin_Inlet -6:08:20 - LMT 1884 +Zone America/Coral_Harbour -5:32:40 - LMT 1884 + -5:00 NT_YK E%sT 1946 + -5:00 - EST +Zone America/Rankin_Inlet -6:08:40 - LMT 1884 -6:00 NT_YK C%sT 2000 Oct 29 2:00 -5:00 - EST 2001 Apr 1 3:00 -6:00 Canada C%sT @@ -1718,20 +1586,16 @@ Zone America/Cambridge_Bay -7:00:20 - LMT 1884 -6:00 - CST 2001 Apr 1 3:00 -7:00 Canada M%sT Zone America/Yellowknife -7:37:24 - LMT 1884 - -7:00 NT_YK M%sT 1980 - -7:00 Canada M%sT -Zone America/Inuvik -8:54:52 - LMT 1884 + -7:00 NT_YK M%sT +Zone America/Inuvik -8:54:00 - LMT 1884 -8:00 NT_YK P%sT 1979 Apr lastSun 2:00 - -7:00 NT_YK M%sT 1980 - -7:00 Canada M%sT + -7:00 NT_YK M%sT Zone America/Whitehorse -9:00:12 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1966 Jul 1 2:00 - -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 NT_YK P%sT Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 -9:00 NT_YK Y%sT 1973 Oct 28 0:00 - -8:00 NT_YK P%sT 1980 - -8:00 Canada P%sT + -8:00 NT_YK P%sT ############################################################################### @@ -1745,12 +1609,16 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # history of Mexican local time (in Spanish) # </a>. # -# Here are the discrepancies between Shanks & Pottenger (S&P) and the MLoC. +# Here are the discrepancies between Shanks and the MLoC. # (In all cases we go with the MLoC.) -# S&P report that Baja was at -8:00 in 1922/1923. -# S&P say the 1930 transition in Baja was 1930-11-16. -# S&P report no DST during summer 1931. -# S&P report a transition at 1932-03-30 23:00, not 1932-04-01. +# Shanks reports that Baja was at -8:00 in 1922/1923. +# Shanks says the 1930 transition in Baja was 1930-11-16. +# Shanks reports no DST during summer 1931. +# Shanks reports a transition at 1932-03-30 23:00, not 1932-04-01. +# Shanks does not report transitions for Baja in 1945 or 1948. +# Shanks reports southern Mexico transitions on 1981-12-01, not 12-23. +# Shanks says Quintana Roo switched to -6:00 on 1982-12-02, and to -5:00 +# on 1997-10-26 at 02:00. # From Gwillim Law (2001-02-20): # There are some other discrepancies between the Decrees page and the @@ -1758,6 +1626,10 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # the researchers who prepared the Decrees page failed to find some of # the relevant documents. +# From Paul Eggert (2000-07-26): +# Shanks gives 1942-04-01 instead of 1942-04-24, and omits the 1981 +# and 1988 DST experiments. Go with spin.com.mx. + # From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. @@ -1957,8 +1829,7 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -8:00 - PST 1931 Apr 1 -8:00 1:00 PDT 1931 Sep 30 -8:00 - PST 1942 Apr 24 - -8:00 1:00 PWT 1945 Aug 14 23:00u - -8:00 1:00 PPT 1945 Nov 12 # Peace + -8:00 1:00 PWT 1945 Nov 12 -8:00 - PST 1948 Apr 5 -8:00 1:00 PDT 1949 Jan 14 -8:00 - PST 1954 @@ -1968,13 +1839,12 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 0:11:56 -8:00 Mexico P%sT 2001 -8:00 US P%sT 2002 Feb 20 -8:00 Mexico P%sT -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2001-03-05): # Formerly there was an America/Ensenada zone, which differed from # America/Tijuana only in that it did not observe DST from 1976 -# through 1995. This was as per Shanks (1999). But Shanks & Pottenger say -# Ensenada did not observe DST from 1948 through 1975. Guy Harris reports +# through 1995. This was as per Shanks. However, Guy Harris reports # that the 1987 OAG says "Only Ensenada, Mexicale, San Felipe and -# Tijuana observe DST," which agrees with Shanks & Pottenger but implies that +# Tijuana observe DST," which contradicts Shanks but does imply that # DST-observance was a town-by-town matter back then. This concerns # data after 1970 so most likely there should be at least one Zone # other than America/Tijuana for Baja, but it's not clear yet what its @@ -2018,7 +1888,7 @@ Zone America/Barbados -3:58:28 - LMT 1924 # Bridgetown -4:00 Barb A%sT # Belize -# Whitman entirely disagrees with Shanks; go with Shanks & Pottenger. +# Whitman entirely disagrees with Shanks; go with Shanks. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Belize 1918 1942 - Oct Sun>=2 0:00 0:30 HD Rule Belize 1919 1943 - Feb Sun>=9 0:00 0 S @@ -2031,20 +1901,10 @@ Zone America/Belize -5:52:48 - LMT 1912 Apr -6:00 Belize C%sT # Bermuda - -# From Dan Jones, reporting in The Royal Gazette (2006-06-26): - -# Next year, however, clocks in the US will go forward on the second Sunday -# in March, until the first Sunday in November. And, after the Time Zone -# (Seasonal Variation) Bill 2006 was passed in the House of Assembly on -# Friday, the same thing will happen in Bermuda. -# http://www.theroyalgazette.com/apps/pbcs.dll/article?AID=/20060529/NEWS/105290135 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Bermuda -4:19:04 - LMT 1930 Jan 1 2:00 # Hamilton -4:00 - AST 1974 Apr 28 2:00 - -4:00 Bahamas A%sT 1976 - -4:00 US A%sT + -4:00 Bahamas A%sT # Cayman Is # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2057,8 +1917,7 @@ Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D -# IATA SSIM (1991-09) says the following was at 1:00; -# go with Shanks & Pottenger. +# IATA SSIM (1991-09) says the following was at 1:00; go with Shanks. Rule CR 1991 only - Jul 1 0:00 0 S Rule CR 1992 only - Mar 15 0:00 0 S # There are too many San Joses elsewhere, so we'll use `Costa Rica'. @@ -2084,26 +1943,18 @@ Zone America/Costa_Rica -5:36:20 - LMT 1890 # San Jose # From Evert van der Veer via Steffen Thorsen (2004-10-28): # Cuba is not going back to standard time this year. -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2004-10-28): # http://www.granma.cu/ingles/2004/septiembre/juev30/41medid-i.html # says that it's due to a problem at the Antonio Guiteras # thermoelectric plant, and says "This October there will be no return # to normal hours (after daylight saving time)". -# For now, let's assume that it's a temporary measure. +# For now, let's assume that it's a one-year temporary measure. # From Carlos A. Carnero Delgado (2005-11-12): # This year (just like in 2004-2005) there's no change in time zone # adjustment in Cuba. We will stay in daylight saving time: # http://www.granma.cu/espanol/2005/noviembre/mier9/horario.html -# From Jesper Norgaard Welen (2006-10-21): -# An article in GRANMA INTERNACIONAL claims that Cuba will end -# the 3 years of permanent DST next weekend, see -# http://www.granma.cu/ingles/2006/octubre/lun16/43horario.html -# "On Saturday night, October 28 going into Sunday, October 29, at 01:00, -# watches should be set back one hour -- going back to 00:00 hours -- returning -# to the normal schedule.... - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Cuba 1928 only - Jun 10 0:00 1:00 D Rule Cuba 1928 only - Oct 10 0:00 0 S @@ -2182,7 +2033,6 @@ Zone America/Santo_Domingo -4:39:36 - LMT 1890 -4:00 - AST # El Salvador - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D Rule Salv 1987 1988 - Sep lastSun 0:00 0 S @@ -2203,19 +2053,6 @@ Zone America/Guadeloupe -4:06:08 - LMT 1911 Jun 8 # Pointe a Pitre -4:00 - AST # Guatemala -# -# From Gwillim Law (2006-04-22), after a heads-up from Oscar van Vlijmen: -# Diario Co Latino, at -# http://www.diariocolatino.com/internacionales/detalles.asp?NewsID=8079, -# says in an article dated 2006-04-19 that the Guatemalan government had -# decided on that date to advance official time by 60 minutes, to lessen the -# impact of the elevated cost of oil.... Daylight saving time will last from -# 2006-04-29 24:00 (Guatemalan standard time) to 2006-09-30 (time unspecified). -# From Paul Eggert (2006-06-22): -# The Ministry of Energy and Mines, press release CP-15/2006 -# (2006-04-19), says DST ends at 24:00. See -# <http://www.sieca.org.gt/Sitio_publico/Energeticos/Doc/Medidas/Cambio_Horario_Nac_190406.pdf>. - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Guat 1973 only - Nov 25 0:00 1:00 D Rule Guat 1974 only - Feb 24 0:00 0 S @@ -2223,8 +2060,6 @@ Rule Guat 1983 only - May 21 0:00 1:00 D Rule Guat 1983 only - Sep 22 0:00 0 S Rule Guat 1991 only - Mar 23 0:00 1:00 D Rule Guat 1991 only - Sep 7 0:00 0 S -Rule Guat 2006 only - Apr 30 0:00 1:00 D -Rule Guat 2006 only - Oct 1 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 -6:00 Guat C%sT @@ -2249,67 +2084,26 @@ Zone America/Guatemala -6:02:04 - LMT 1918 Oct 5 # October 2005. # # "Port-au-Prince, March 31, 2005" -# -# From Steffen Thorsen (2006-04-04): -# I have been informed by users that Haiti observes DST this year like -# last year, so the current "only" rule for 2005 might be changed to a -# "max" rule or to last until 2006. (Who knows if they will observe DST -# next year or if they will extend their DST like US/Canada next year). -# -# I have found this article about it (in French): -# http://www.haitipressnetwork.com/news.cfm?articleID=7612 -# -# The reason seems to be an energy crisis. - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S 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 & Pottenger say AT is 2:00, but IATA SSIM (1991/1997) 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 -Rule Haiti 2005 max - Apr Sun>=1 0:00 1:00 D -Rule Haiti 2005 max - Oct lastSun 0:00 0 S +Rule Haiti 2005 only - Apr Sun>=1 0:00 1:00 D +Rule Haiti 2005 only - Oct lastSun 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Port-au-Prince -4:49:20 - LMT 1890 -4:49 - PPMT 1917 Jan 24 12:00 # P-a-P MT -5:00 Haiti E%sT # Honduras -# Shanks & Pottenger say 1921 Jan 1; go with Whitman's more precise Apr 1. - -# From Paul Eggert (2006-05-05): -# worldtimezone.com reports a 2006-05-02 Spanish-language AP article -# saying Honduras will start using DST midnight Saturday, effective 4 -# months until September. La Tribuna reported today -# <http://www.latribuna.hn/99299.html> that Manuel Zelaya, the president -# of Honduras, refused to back down on this. - -# From Jesper Norgaard Welen (2006-08-08): -# It seems that Honduras has returned from DST to standard time this Monday at -# 00:00 hours (prolonging Sunday to 25 hours duration). -# http://www.worldtimezone.com/dst_news/dst_news_honduras04.html - -# From Paul Eggert (2006-08-08): -# Also see Diario El Heraldo, The country returns to standard time (2006-08-08) -# <http://www.elheraldo.hn/nota.php?nid=54941&sec=12>. -# It mentions executive decree 18-2006. - -# From Steffen Thorsen (2006-08-17): -# Honduras will observe DST from 2007 to 2009, exact dates are not -# published, I have located this authoritative source: -# http://www.presidencia.gob.hn/noticia.aspx?nId=47 - -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D -Rule Hond 1987 1988 - Sep lastSun 0:00 0 S -Rule Hond 2006 2009 - May Sun>=1 0:00 1:00 D -Rule Hond 2006 2009 - Aug Mon>=1 0:00 0 S +# Shanks says 1921 Jan 1; go with Whitman's more precise Apr 1. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr - -6:00 Hond C%sT + -6:00 Salv C%sT # # Great Swan I ceded by US to Honduras in 1972 @@ -2321,7 +2115,7 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr # From U. S. Naval Observatory (1989-01-19): # JAMAICA 5 H BEHIND UTC -# From Shanks & Pottenger: +# 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 @@ -2338,16 +2132,18 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France -4:00 - AST # Montserrat -# From Paul Eggert (2006-03-22): -# In 1995 volcanic eruptions forced evacuation of Plymouth, the capital. -# world.gazetteer.com says Cork Hill is the most populous location now. +# From Paul Eggert (1997-08-31): +# Recent volcanic eruptions have forced evacuation of Plymouth, the capital. +# Luckily, Olveston, the current de facto capital, has the same longitude. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill +Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Olveston -4:00 - AST # Nicaragua # -# This uses Shanks & Pottenger for times before 2005. +# From Steffen Thorsen (1998-12-29): +# Nicaragua seems to be back at -6:00 but I have not been able to find when +# they changed from -5:00. # # From Steffen Thorsen (2005-04-12): # I've got reports from 8 different people that Nicaragua just started @@ -2361,7 +2157,8 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill # # From Paul Eggert (2005-05-01): # The decree doesn't say anything about daylight saving, but for now let's -# assume that it is daylight saving.... +# assume that it is daylight saving and that they'll switch back on the +# 3rd Sunday in September. # # From Gwillim Law (2005-04-21): # The Associated Press story on the time change, which can be found at @@ -2379,35 +2176,20 @@ Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill # http://www.presidencia.gob.ni/presidencia/files_index/secretaria/comunicados/2005/septiembre/26septiembre-cambio-hora.htm # (2005-09-26) # -# From Jesper Norgaard Welen (2006-05-05): -# http://www.elnuevodiario.com.ni/2006/05/01/nacionales/18410 -# (my informal translation) -# By order of the president of the republic, Enrique Bolanos, Nicaragua -# advanced by sixty minutes their official time, yesterday at 2 in the -# morning, and will stay that way until 30.th. of september. -# -# From Jesper Norgaard Welen (2006-09-30): -# http://www.presidencia.gob.ni/buscador_gaceta/BD/DECRETOS/2006/D-063-2006P-PRN-Cambio-Hora.pdf -# My informal translation runs: -# The natural sun time is restored in all the national territory, in that the -# time is returned one hour at 01:00 am of October 1 of 2006. -# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S +Rule Nic 1992 only - Jan 1 4:00 1:00 D +Rule Nic 1992 only - Sep 24 0:00 0 S Rule Nic 2005 only - Apr 10 0:00 1:00 D -Rule Nic 2005 only - Oct Sun>=1 0:00 0 S -Rule Nic 2006 only - Apr 30 2:00 1:00 D -Rule Nic 2006 only - Oct Sun>=1 1:00 0 S +Rule Nic 2005 only - Oct 2 0:00 0 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Managua -5:45:08 - LMT 1890 -5:45:12 - MMT 1934 Jun 23 # Managua Mean Time? -6:00 - CST 1973 May -5:00 - EST 1975 Feb 16 - -6:00 Nic C%sT 1992 Jan 1 4:00 - -5:00 - EST 1992 Sep 24 - -6:00 - CST 1993 - -5:00 - EST 1997 + -6:00 Nic C%sT 1993 Jan 1 4:00 + -5:00 - EST 1998 Dec -6:00 Nic C%sT # Panama @@ -2421,7 +2203,7 @@ Zone America/Panama -5:18:08 - LMT 1890 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12:00 # San Juan -4:00 - AST 1942 May 3 - -4:00 US A%sT 1946 + -4:00 1:00 AWT 1945 Sep 30 2:00 -4:00 - AST # St Kitts-Nevis @@ -2450,8 +2232,8 @@ Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown -4:00 - AST # Turks and Caicos -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say they use US DST rules, but IATA SSIM (1991/1998) +# From Paul Eggert (1998-08-06): +# Shanks says they use US DST rules, but IATA SSIM (1991/1998) # says they switch at midnight. Go with IATA SSIM. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule TC 1979 1986 - Apr lastSun 0:00 1:00 D diff --git a/timezone/private.h b/timezone/private.h index 2837b70..d9f232c 100644 --- a/timezone/private.h +++ b/timezone/private.h @@ -21,7 +21,7 @@ #ifndef lint #ifndef NOID -static char privatehid[] = "@(#)private.h 8.2"; +static char privatehid[] = "@(#)private.h 7.55"; #endif /* !defined NOID */ #endif /* !defined lint */ @@ -89,7 +89,7 @@ static char privatehid[] = "@(#)private.h 8.2"; #include "stdio.h" #include "errno.h" #include "string.h" -#include "limits.h" /* for CHAR_BIT et al. */ +#include "limits.h" /* for CHAR_BIT */ #include "time.h" #include "stdlib.h" @@ -125,51 +125,20 @@ static char privatehid[] = "@(#)private.h 8.2"; #define is_digit(c) ((unsigned)(c) - '0' <= 9) /* -** Define HAVE_STDINT_H's default value here, rather than at the -** start, since __GLIBC__'s value depends on previously-included -** files. -** (glibc 2.1 and later have stdint.h, even with pre-C99 compilers.) -*/ -#ifndef HAVE_STDINT_H -#define HAVE_STDINT_H \ - (199901 <= __STDC_VERSION__ || \ - 2 < (__GLIBC__ + (0 < __GLIBC_MINOR__))) -#endif /* !defined HAVE_STDINT_H */ - -#if HAVE_STDINT_H -#include "stdint.h" -#endif /* !HAVE_STDINT_H */ - -#ifndef INT_FAST64_MAX -/* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX. */ -#if defined LLONG_MAX || defined __LONG_LONG_MAX__ -typedef long long int_fast64_t; -#else /* ! (defined LLONG_MAX || defined __LONG_LONG_MAX__) */ -#if (LONG_MAX >> 31) < 0xffffffff -Please use a compiler that supports a 64-bit integer type (or wider); -you may need to compile with "-DHAVE_STDINT_H". -#endif /* (LONG_MAX >> 31) < 0xffffffff */ -typedef long int_fast64_t; -#endif /* ! (defined LLONG_MAX || defined __LONG_LONG_MAX__) */ -#endif /* !defined INT_FAST64_MAX */ - -#ifndef INT32_MAX -#define INT32_MAX 0x7fffffff -#endif /* !defined INT32_MAX */ -#ifndef INT32_MIN -#define INT32_MIN (-1 - INT32_MAX) -#endif /* !defined INT32_MIN */ - -/* ** Workarounds for compilers/systems. */ /* -** If your compiler lacks prototypes, "#define P(x) ()". +** SunOS 4.1.1 cc lacks prototypes. */ #ifndef P +#ifdef __STDC__ #define P(x) x +#endif /* defined __STDC__ */ +#ifndef __STDC__ +#define P(x) () +#endif /* !defined __STDC__ */ #endif /* !defined P */ /* @@ -242,14 +211,14 @@ extern char * asctime_r(); ** Private function declarations. */ -char * icalloc P((int nelem, int elsize)); -char * icatalloc P((char * old, const char * new)); -char * icpyalloc P((const char * string)); -char * imalloc P((int n)); -void * irealloc P((void * pointer, int size)); -void icfree P((char * pointer)); -void ifree P((char * pointer)); -const char * scheck P((const char * string, const char * format)); +char * icalloc P((int nelem, int elsize)); +char * icatalloc P((char * old, const char * new)); +char * icpyalloc P((const char * string)); +char * imalloc P((int n)); +void * irealloc P((void * pointer, int size)); +void icfree P((char * pointer)); +void ifree P((char * pointer)); +const char *scheck P((const char *string, const char *format)); /* ** Finally, some convenience items. @@ -341,26 +310,6 @@ char *asctime_r P((struct tm const *, char *)); char *ctime_r P((time_t const *, char *)); #endif /* HAVE_INCOMPATIBLE_CTIME_R */ -#ifndef YEARSPERREPEAT -#define YEARSPERREPEAT 400 /* years before a Gregorian repeat */ -#endif /* !defined YEARSPERREPEAT */ - -/* -** The Gregorian year averages 365.2425 days, which is 31556952 seconds. -*/ - -#ifndef AVGSECSPERYEAR -#define AVGSECSPERYEAR 31556952L -#endif /* !defined AVGSECSPERYEAR */ - -#ifndef SECSPERREPEAT -#define SECSPERREPEAT ((int_fast64_t) YEARSPERREPEAT * (int_fast64_t) AVGSECSPERYEAR) -#endif /* !defined SECSPERREPEAT */ - -#ifndef SECSPERREPEAT_BITS -#define SECSPERREPEAT_BITS 34 /* ceil(log2(SECSPERREPEAT)) */ -#endif /* !defined SECSPERREPEAT_BITS */ - /* ** UNIX was a registered trademark of The Open Group in 2003. */ diff --git a/timezone/scheck.c b/timezone/scheck.c index 74d9b07..bc15637 100644 --- a/timezone/scheck.c +++ b/timezone/scheck.c @@ -1,11 +1,6 @@ -/* -** This file is in the public domain, so clarified as of -** 2006-07-17 by Arthur David Olson. -*/ - #ifndef lint #ifndef NOID -static char elsieid[] = "@(#)scheck.c 8.19"; +static char elsieid[] = "@(#)scheck.c 8.17"; #endif /* !defined lint */ #endif /* !defined NOID */ diff --git a/timezone/southamerica b/timezone/southamerica index ca6c492..3a61cd7 100644 --- a/timezone/southamerica +++ b/timezone/southamerica @@ -1,14 +1,14 @@ -# @(#)southamerica 8.6 +# @(#)southamerica 8.1 # <pre> # 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 (2006-03-22): +# From Paul Eggert (1999-07-07): # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), -# San Diego: ACS Publications, Inc. (2003). +# 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 @@ -16,8 +16,8 @@ # published semiannually. Law sent in several helpful summaries # of the IATA's data after 1990. # -# Except where otherwise noted, Shanks & Pottenger is the source for -# entries through 1990, and IATA SSIM is the source for entries afterwards. +# Except where otherwise noted, Shanks is the source for entries through 1990, +# and IATA SSIM is the source for entries after 1990. # # Earlier editions of these tables used the North American style (e.g. ARST and # ARDT for Argentine Standard and Daylight Time), but the following quote @@ -92,6 +92,8 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S # obtaining the data from the: # Talleres de Hidrografia Naval Argentina # (Argentine Naval Hydrography Institute) +# +# 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 # @@ -148,12 +150,12 @@ Rule Arg 2000 only - Mar Sun>=1 0:00 0 - # It's Law No. 7,210. This change is due to a public power emergency, so for # now we'll assume it's for this year only. # -# From Paul Eggert (2006-03-22): +# From Paul Eggert (2002-01-22): # <a href="http://www.spicasc.net/horvera.html"> -# Hora de verano para la Republica Argentina (2003-06-08) +# Hora de verano para la Republica Argentina (2000-10-01) # </a> says that standard time in Argentina from 1894-10-31 # to 1920-05-01 was -4:16:48.25. Go with this more-precise value -# over Shanks & Pottenger. +# over Shanks. # # From Mariano Absatz (2004-06-05): # These media articles from a major newspaper mostly cover the current state: @@ -200,8 +202,8 @@ Rule Arg 2000 only - Mar Sun>=1 0:00 0 - # http://www.sanjuan.gov.ar/prensa/archivo/000426.html # http://www.sanjuan.gov.ar/prensa/archivo/000441.html -# Unless otherwise specified, data are from Shanks & Pottenger through 1992, -# from the IATA otherwise. As noted below, Shanks & Pottenger say that +# Unless otherwise specified, data are from Shanks through 1992, from +# the IATA otherwise. As noted below, Shanks says that # America/Cordoba split into 6 subregions during 1991/1992, but we # haven't verified this yet so for now we'll keep it a single region. # @@ -220,7 +222,7 @@ Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 # Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB), # San Luis (SL), La Pampa (LP), Neuquen (NQ), Rio Negro (RN) # -# Shanks & Pottenger also make the following claims, which we haven't verified: +# Shanks also makes the following claims, which we haven't verified: # - Formosa switched to -3:00 on 1991-01-07. # - Misiones switched to -3:00 on 1990-12-29. # - Chaco switched to -3:00 on 1991-01-04. @@ -428,7 +430,11 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # The official decrees referenced below are mostly taken from # <a href="http://pcdsh01.on.br/DecHV.html"> # Decretos sobre o Horario de Verao no Brasil -# </a>. +# </a> (2001-09-20, in Portuguese). +# The official site for all decrees, including those not related to time, is +# <a href="http://www.presidencia.gov.br/CCIVIL/decreto/principal_ano.htm"> +# Presidencia da Republica, Subchefia para Assuntos Juridicos, Decretos +# </a> (in Portuguese). # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Decree <a href="http://pcdsh01.on.br/HV20466.htm">20,466</a> (1931-10-01) @@ -544,7 +550,7 @@ Rule Brazil 2000 only - Feb 27 0:00 0 - # Decree <a href="http://pcdsh01.on.br/figuras/HV3916.gif">3,916</a> # (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE. Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 S -Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 - +Rule Brazil 2001 max - Feb Sun>=15 0:00 0 - # Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE. # <a href="http://www.presidencia.gov.br/CCIVIL/decreto/2002/D4399.htm"></a> Rule Brazil 2002 only - Nov 3 0:00 1:00 S @@ -556,14 +562,10 @@ Rule Brazil 2003 only - Oct 19 0:00 1:00 S Rule Brazil 2004 only - Nov 2 0:00 1:00 S # Decree <a href="http://pcdsh01.on.br/DecHV5539.gif">5,539</a> (2005-09-19), # adopted by the same states as before. -Rule Brazil 2005 only - Oct 16 0:00 1:00 S -# Decree <a href="http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2006/Decreto/D5920.htm">5,920</a> -# (2006-10-03), adopted by the same states as before. -Rule Brazil 2006 max - Nov Sun>=1 0:00 1:00 S -Rule Brazil 2007 max - Feb lastSun 0:00 0 - +Rule Brazil 2005 max - Oct Sun>=15 0:00 1:00 S # The latest ruleset listed above says that the following states observe DST: # DF, ES, GO, MG, MS, MT, PR, RJ, RS, SC, SP. -# For dates after mid-2007, the above rules with TO="max" are guesses +# For dates after mid-2006, the above rules with TO="max" are guesses # and are quite possibly wrong, but are more likely than no DST at all. @@ -704,64 +706,53 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 # Because of the same drought, the government decided to end DST later, # on April 3, (one-time change). -# From Oscar van Vlijmen (2006-10-08): -# http://www.horaoficial.cl/cambio.htm +# From Gwillim Law (2001-05-04): +# I came across another article in "La Tercera" about Chilean DST. +# <http://www.tercera.cl/diario/2000/10/13/t-extras.html> +# It clearly confirms my earlier suggestion, that DST begins at 22:00 +# on Easter Island.... But it also seems to be saying that the +# observance of DST in Chile began in 1966, rather than 1969 as +# ... [Shanks] has it.... +# +# My translation: +# +# "The Chilean Army has announced that summer time will begin tomorrow, +# Saturday, October 14 in continental Chile, insular Chile, and +# Antarctica, as provided by Supreme Decree 25 of January 11, 1966. +# By the preceding, official time in continental Chile and Chilean +# Antarctic, and official time in Western Insular Chile, which applies +# to Easter Island and Sala y Gomez Island, will be set forward at +# midnight and at 22:00, respectively, by 20 minutes." -# From Jesper Norgaard Welen (2006-10-08): -# I think that there are some obvious mistakes in the suggested link -# from Oscar van Vlijmen,... for instance entry 66 says that GMT-4 -# ended 1990-09-12 while entry 67 only begins GMT-3 at 1990-09-15 -# (they should have been 1990-09-15 and 1990-09-16 respectively), but -# anyhow it clears up some doubts too. +# From Paul Eggert (2001-05-04): +# Go with this article in preference to Shanks's 1969 date for modern DST. +# Assume this rule has been used since DST was introduced in the islands. -# The following data are from <http://www.horaoficial.cl/horaof.htm> -# (2006-09-20), transcribed by Jesper Norgaard Welen. +# From Paul Eggert (2002-10-24): +# <http://www.shoa.cl/shoa/faqhoraoficial.htm> gives many details that +# disagree with the following table, but we haven't had time to compare them. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Chile 1927 1932 - Sep 1 0:00 1:00 S +Rule Chile 1918 only - Sep 1 0:00 1:00 S +Rule Chile 1919 only - Jul 2 0:00 0 - +Rule Chile 1927 1931 - Sep 1 0:00 1:00 S Rule Chile 1928 1932 - Apr 1 0:00 0 - -Rule Chile 1942 only - Jun 1 4:00u 0 - -Rule Chile 1942 only - Aug 1 5:00u 1:00 S -Rule Chile 1946 only - Jul 15 4:00u 1:00 S -Rule Chile 1946 only - Sep 1 3:00u 0:00 - -Rule Chile 1947 only - Apr 1 4:00u 0 - -Rule Chile 1968 only - Nov 3 4:00u 1:00 S -Rule Chile 1969 only - Mar 30 3:00u 0 - -Rule Chile 1969 only - Nov 23 4:00u 1:00 S -Rule Chile 1970 only - Mar 29 3:00u 0 - -Rule Chile 1971 only - Mar 14 3:00u 0 - -Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 - -Rule Chile 1973 only - Sep 30 4:00u 1:00 S -Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1987 only - Apr 12 3:00u 0 - -Rule Chile 1988 1989 - Mar Sun>=9 3:00u 0 - -Rule Chile 1988 only - Oct Sun>=1 4:00u 1:00 S -Rule Chile 1989 only - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1990 only - Mar 18 3:00u 0 - -Rule Chile 1990 only - Sep 16 4:00u 1:00 S -Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 - -Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S -Rule Chile 1997 only - Mar 30 3:00u 0 - -Rule Chile 1998 only - Mar Sun>=9 3:00u 0 - +Rule Chile 1966 1997 - Oct Sun>=9 4:00u 1:00 S +Rule Chile 1967 1998 - Mar Sun>=9 3:00u 0 - Rule Chile 1998 only - Sep 27 4:00u 1:00 S Rule Chile 1999 only - Apr 4 3:00u 0 - Rule Chile 1999 max - Oct Sun>=9 4:00u 1:00 S Rule Chile 2000 max - Mar Sun>=9 3:00u 0 - -# IATA SSIM anomalies: (1992-02) says 1992-03-14; +# IATA SSIM anomalies: (1990-09) says 1990-09-16; (1992-02) says 1992-03-14; # (1996-09) says 1998-03-08. Ignore these. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone America/Santiago -4:42:46 - LMT 1890 - -4:42:46 - SMT 1910 # Santiago Mean Time - -5:00 - CLT 1916 Jul 1 # Chile Time - -4:42:46 - SMT 1918 Sep 1 # Santiago Mean Time - -4:00 - CLT 1919 Jul 1 # Chile Time - -4:42:46 - SMT 1927 Sep 1 # Santiago Mean Time - -5:00 Chile CL%sT 1947 May 22 # Chile Time +Zone America/Santiago -4:42:40 - LMT 1890 + -4:42:40 - SMT 1910 # Santiago Mean Time + -5:00 Chile CL%sT 1932 Sep # Chile Time -4:00 Chile CL%sT Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri -7:17:28 - MMT 1932 Sep # Mataveri Mean Time - -7:00 Chile EAS%sT 1982 Jan 18 21:00 # Easter I Time + -7:00 Chile EAS%sT 1982 Mar 14 # Easter I Time -6:00 Chile EAS%sT # # Sala y Gomez Island is like Pacific/Easter. @@ -769,9 +760,11 @@ Zone Pacific/Easter -7:17:28 - LMT 1890 # Mataveri # San Felix, and Antarctic bases, are like America/Santiago. # 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 3 0:00 1:00 S -Rule CO 1993 only - Apr 4 0:00 0 - +Rule CO 1992 only - May 2 0:00 1:00 S +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 -4:56:20 - BMT 1914 Nov 23 # Bogota Mean Time @@ -780,21 +773,10 @@ Zone America/Bogota -4:56:20 - LMT 1884 Mar 13 # no information; probably like America/Bogota # Curacao -# -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say that The Bottom and Philipsburg 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. The former is dubious, since S&P also say -# Saba Island has been like Curacao. -# This all predates our 1970 cutoff, though. -# -# By July 2007 Curacao and St Maarten are planned to become -# associated states within the Netherlands, much like Aruba; -# Bonaire, Saba and St Eustatius would become directly part of the -# Netherlands as Kingdom Islands. This won't affect their time zones -# though, as far as we know. -# +# 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. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Curacao -4:35:44 - LMT 1912 Feb 12 # Willemstad -4:30 - ANT 1965 # Netherlands Antilles Time @@ -811,9 +793,9 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno # Falklands -# From Paul Eggert (2006-03-22): -# Between 1990 and 2000 inclusive, Shanks & Pottenger and the IATA agree except -# the IATA gives 1996-09-08. Go with Shanks & Pottenger. +# From Paul Eggert (2001-03-05): +# Between 1990 and 2000 inclusive, Shanks and the IATA agree except +# the IATA gives 1996-09-08. Go with Shanks. # From Falkland Islands Government Office, London (2001-01-22) # via Jesper Norgaard: @@ -896,9 +878,9 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown -4:00 - GYT # Paraguay -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger say that spring transitions are from 01:00 -> 02:00, -# and autumn transitions are from 00:00 -> 23:00. Go with pre-1999 +# 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 1988 - Oct 1 0:00 1:00 S @@ -929,10 +911,13 @@ Rule Para 1996 only - Mar 1 0:00 0 - # year, the time will change on the first Sunday of October; likewise, the # clock will be set back on the first Sunday of March. # +# From Jesper Norgaard (2001-03-06) [an official URL saying similar things]: +# http://gateway.abc.com.py:8000/pub/pag04.mbr/artic?FHA=2001-03-03-02.24.52.900592 +# Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 S -# IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger. +# IATA SSIM (1997-09) says Mar 1; go with Shanks. Rule Para 1997 only - Feb lastSun 0:00 0 - -# Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but +# Shanks says 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but # (1999-09) reports no date; go with above sources and Gerd Knops (2001-02-27). Rule Para 1998 2001 - Mar Sun>=1 0:00 0 - # From Rives McDow (2002-02-28): @@ -946,9 +931,7 @@ Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S # There are several sources that claim that Paraguay made # a timezone rule change in autumn 2004. # From Steffen Thorsen (2005-01-05): -# Decree 1,867 (2004-03-05) -# From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13) -# <http://www.presidencia.gov.py/decretos/D1867.pdf> +# Decree 1,867 (2004-03-05) <http://www.labor.com.py/noticias.asp?id=27> Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S Rule Para 2005 max - Mar Sun>=8 0:00 0 - @@ -966,8 +949,8 @@ Zone America/Asuncion -3:50:40 - LMT 1890 # When we were in Peru in 1985-1986, they apparently switched over # sometime between December 29 and January 3 while we were on the Amazon. # -# From Paul Eggert (2006-03-22): -# Shanks & Pottenger don't have this transition. Assume 1986 was like 1987. +# From Paul Eggert (2003-11-02): +# Shanks doesn't have this transition. Assume 1986 was like 1987. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Peru 1938 only - Jan 1 0:00 1:00 S @@ -978,7 +961,7 @@ Rule Peru 1986 1987 - Jan 1 0:00 1:00 S Rule Peru 1986 1987 - Apr 1 0:00 0 - Rule Peru 1990 only - Jan 1 0:00 1:00 S Rule Peru 1990 only - Apr 1 0:00 0 - -# IATA is ambiguous for 1993/1995; go with Shanks & Pottenger. +# IATA is ambiguous for 1993/1995; go with Shanks. Rule Peru 1994 only - Jan 1 0:00 1:00 S Rule Peru 1994 only - Apr 1 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -1011,23 +994,23 @@ 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 & Pottenger: +# From Shanks: # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -# Whitman gives 1923 Oct 1; go with Shanks & Pottenger. +# Whitman gives 1923 Oct 1; go with Shanks. Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS Rule Uruguay 1924 1926 - Apr 1 0:00 0 - Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS -# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman. +# Shanks gives 1935 Apr 1 0:00 and 1936 Mar 30 0:00; go with Whitman. Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 - Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 - -# Whitman gives 1937 Oct 3; go with Shanks & Pottenger. +# Whitman gives 1937 Oct 3; go with Shanks. Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS # Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13, -# and 1943 Apr 13 ``to present time''; go with Shanks & Pottenger. -Rule Uruguay 1941 only - Aug 1 0:00 0:30 HS -Rule Uruguay 1942 only - Jan 1 0:00 0 - +# and 1943 Apr 13 ``to present time''; go with Shanks. +Rule Uruguay 1941 only - Aug 1 0:00 0 - +Rule Uruguay 1942 only - Jan 1 0:00 0:30 HS Rule Uruguay 1942 only - Dec 14 0:00 1:00 S Rule Uruguay 1943 only - Mar 14 0:00 0 - Rule Uruguay 1959 only - May 24 0:00 1:00 S @@ -1053,7 +1036,7 @@ 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 & Pottenger say no DST was observed in 1990/1 and 1991/2, +# 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 @@ -1074,10 +1057,6 @@ Rule Uruguay 2005 only - Mar 27 2:00 0 - # 02:00 local time, official time in Uruguay will be at GMT -2. Rule Uruguay 2005 only - Oct 9 2:00 1:00 S Rule Uruguay 2006 only - Mar 12 2:00 0 - -# From Jesper Norgaard Welen (2006-09-06): -# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006_00001.PDF -Rule Uruguay 2006 max - Oct Sun>=1 2:00 1:00 S -Rule Uruguay 2007 max - Mar Sun>=8 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone America/Montevideo -3:44:44 - LMT 1898 Jun 28 -3:44:44 - MMT 1920 May 1 # Montevideo MT diff --git a/timezone/tzfile.h b/timezone/tzfile.h index 3a9eee3..fb6ca98 100644 --- a/timezone/tzfile.h +++ b/timezone/tzfile.h @@ -21,7 +21,7 @@ #ifndef lint #ifndef NOID -static char tzfilehid[] = "@(#)tzfile.h 8.1"; +static char tzfilehid[] = "@(#)tzfile.h 7.18"; #endif /* !defined NOID */ #endif /* !defined lint */ @@ -49,8 +49,7 @@ static char tzfilehid[] = "@(#)tzfile.h 8.1"; struct tzhead { char tzh_magic[4]; /* TZ_MAGIC */ - char tzh_version[1]; /* '\0' or '2' as of 2005 */ - char tzh_reserved[15]; /* reserved--must be zero */ + char tzh_reserved[16]; /* reserved for future use */ char tzh_ttisgmtcnt[4]; /* coded number of trans. time flags */ char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */ char tzh_leapcnt[4]; /* coded number of leap seconds */ @@ -85,22 +84,18 @@ struct tzhead { */ /* -** If tzh_version is '2' or greater, the above is followed by a second instance -** of tzhead and a second instance of the data in which each coded transition -** time uses 8 rather than 4 chars, -** then a POSIX-TZ-environment-variable-style string for use in handling -** instants after the last transition time stored in the file -** (with nothing between the newlines if there is no POSIX representation for -** such instants). -*/ - -/* ** In the current implementation, "tzset()" refuses to deal with files that ** exceed any of the limits below. */ #ifndef TZ_MAX_TIMES -#define TZ_MAX_TIMES 1200 +/* +** The TZ_MAX_TIMES value below is enough to handle a bit more than a +** year's worth of solar time (corrected daily to the nearest second) or +** 138 years of Pacific Presidential Election time +** (where there are three time zone transitions every fourth year). +*/ +#define TZ_MAX_TIMES 370 #endif /* !defined TZ_MAX_TIMES */ #ifndef TZ_MAX_TYPES diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh index b99af82..f6e28bf 100644 --- a/timezone/tzselect.ksh +++ b/timezone/tzselect.ksh @@ -1,6 +1,6 @@ #! @KSH@ -# '@(#)tzselect.ksh 8.1' +# '@(#)tzselect.ksh 1.8' # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. diff --git a/timezone/zdump.c b/timezone/zdump.c index ae4d286..d525da1 100644 --- a/timezone/zdump.c +++ b/timezone/zdump.c @@ -1,4 +1,4 @@ -static char elsieid[] = "@(#)zdump.c 8.2"; +static char elsieid[] = "@(#)zdump.c 7.74"; /* ** This code has been made independent of the rest of the time @@ -15,7 +15,7 @@ static char elsieid[] = "@(#)zdump.c 8.2"; #include "ctype.h" /* for isalpha et al. */ #ifndef isascii #define isascii(x) 1 -#endif /* !defined isascii */ +#endif #ifndef ZDUMP_LO_YEAR #define ZDUMP_LO_YEAR (-500) @@ -130,7 +130,11 @@ static char elsieid[] = "@(#)zdump.c 8.2"; #endif /* !defined TZ_DOMAIN */ #ifndef P +#ifdef __STDC__ #define P(x) x +#else /* !defined __STDC__ */ +#define P(x) () +#endif /* !defined __STDC__ */ #endif /* !defined P */ extern char ** environ; @@ -414,21 +418,14 @@ _("%s: use of -v on system with floating time_t other than float or double\n"), } } else if (0 > (time_t) -1) { /* - ** time_t is signed. Assume overflow wraps around. + ** time_t is signed. */ - time_t t = 0; - time_t t1 = 1; + register time_t hibit; - while (t < t1) { - t = t1; - t1 = 2 * t1 + 1; - } - - absolute_max_time = t; - t = -t; - absolute_min_time = t - 1; - if (t < absolute_min_time) - absolute_min_time = t; + for (hibit = 1; (hibit * 2) != 0; hibit *= 2) + continue; + absolute_min_time = hibit; + absolute_max_time = -(hibit + 1); } else { /* ** time_t is unsigned. @@ -471,7 +468,10 @@ const long y; } static time_t -hunt(char *name, time_t lot, time_t hit) +hunt(name, lot, hit) +char * name; +time_t lot; +time_t hit; { time_t t; long diff; @@ -541,7 +541,10 @@ struct tm * oldp; } static void -show(char *zone, time_t t, int v) +show(zone, t, v) +char * zone; +time_t t; +int v; { register struct tm * tmp; diff --git a/timezone/zic.c b/timezone/zic.c index f7393ea..acb76fb 100644 --- a/timezone/zic.c +++ b/timezone/zic.c @@ -1,18 +1,15 @@ +static char elsieid[] = "@(#)zic.c 7.128"; + /* -** This file is in the public domain, so clarified as of -** 2006-07-17 by Arthur David Olson. +** Regardless of the type of time_t, we do our work using this type. */ -static char elsieid[] = "@(#)zic.c 8.7"; +typedef int zic_t; #include "private.h" #include "locale.h" #include "tzfile.h" -#define ZIC_VERSION '2' - -typedef int_fast64_t zic_t; - #ifndef ZIC_MAX_ABBR_LEN_WO_WARN #define ZIC_MAX_ABBR_LEN_WO_WARN 6 #endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */ @@ -39,11 +36,6 @@ typedef int_fast64_t zic_t; #define isascii(x) 1 #endif -#define OFFSET_STRLEN_MAXIMUM (7 + INT_STRLEN_MAXIMUM(long)) -#define RULE_STRLEN_MAXIMUM 8 /* "Mdd.dd.d" */ - -#define end(cp) (strchr((cp), '\0')) - struct rule { const char * r_filename; int r_linenum; @@ -52,8 +44,6 @@ struct rule { int r_loyear; /* for example, 1986 */ int r_hiyear; /* for example, 1986 */ const char * r_yrtype; - int r_lowasnum; - int r_hiwasnum; int r_month; /* 0..11 */ @@ -113,10 +103,9 @@ static void adjleap P((void)); static void associate P((void)); static int ciequal P((const char * ap, const char * bp)); static void convert P((long val, char * buf)); -static void convert64 P((zic_t val, char * buf)); static void dolink P((const char * fromfile, const char * tofile)); static void doabbr P((char * abbr, const char * format, - const char * letters, int isdst, int doquotes)); + const char * letters, int isdst)); static void eat P((const char * name, int num)); static void eats P((const char * name, int num, const char * rname, int rnum)); @@ -132,7 +121,6 @@ static void inrule P((char ** fields, int nfields)); static int inzcont P((char ** fields, int nfields)); static int inzone P((char ** fields, int nfields)); static int inzsub P((char ** fields, int nfields, int iscont)); -static int is32 P((zic_t x)); static int itsabbr P((const char * abbr, const char * word)); static int itsdir P((const char * name)); static int lowerit P((int c)); @@ -142,22 +130,16 @@ static void newabbr P((const char * abbr)); static long oadd P((long t1, long t2)); static void outzone P((const struct zone * zp, int ntzones)); static void puttzcode P((long code, FILE * fp)); -static void puttzcode64 P((zic_t code, FILE * fp)); static int rcomp P((const void * leftp, const void * rightp)); static zic_t rpytime P((const struct rule * rp, int wantedy)); static void rulesub P((struct rule * rp, const char * loyearp, const char * hiyearp, const char * typep, const char * monthp, const char * dayp, const char * timep)); -static int stringoffset P((char * result, long offset)); -static int stringrule P((char * result, const struct rule * rp, - long dstoff, long gmtoff)); -static void stringzone P((char * result, - const struct zone * zp, int ntzones)); static void setboundaries P((void)); static zic_t tadd P((zic_t t1, long t2)); static void usage P((void)); -static void writezone P((const char * name, const char * string)); +static void writezone P((const char * name)); static int yearistype P((int year, const char * type)); #if !HAVE_STRERROR @@ -168,16 +150,13 @@ static int charcnt; static int errors; static const char * filename; static int leapcnt; -static int leapseen; -static int leapminyear; -static int leapmaxyear; static int linenum; -static int max_abbrvar_len; -static int max_format_len; static zic_t max_time; static int max_year; +static int max_year_representable; static zic_t min_time; static int min_year; +static int min_year_representable; static int noise; static const char * rfilename; static int rlinenum; @@ -474,7 +453,7 @@ static void usage P((void)) { (void) fprintf(stderr, _("%s: usage is %s \ -[ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ +[ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\ \t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"), progname, progname); exit(EXIT_FAILURE); @@ -485,6 +464,7 @@ static const char * lcltime; static const char * directory; static const char * leapsec; static const char * yitcommand; +static int sflag = FALSE; int main(argc, argv) @@ -506,11 +486,6 @@ char * argv[]; (void) textdomain(TZ_DOMAIN); #endif /* HAVE_GETTEXT */ progname = argv[0]; - if (TYPE_BIT(zic_t) < 64) { - (void) fprintf(stderr, "%s: %s\n", progname, - _("wild compilation-time specification of zic_t")); - exit(EXIT_FAILURE); - } for (i = 1; i < argc; ++i) if (strcmp(argv[i], "--version") == 0) { (void) printf("%s\n", elsieid); @@ -574,7 +549,7 @@ _("%s: More than one -L option specified\n"), noise = TRUE; break; case 's': - (void) printf("%s: -s ignored\n", progname); + sflag = TRUE; break; } if (optind == argc - 1 && strcmp(argv[optind], "=") == 0) @@ -696,17 +671,54 @@ warning(_("hard link failed, symbolic link used")); ifree(toname); } -#define TIME_T_BITS_IN_FILE 64 +#ifndef INT_MAX +#define INT_MAX ((int) (((unsigned)~0)>>1)) +#endif /* !defined INT_MAX */ + +#ifndef INT_MIN +#define INT_MIN ((int) ~(((unsigned)~0)>>1)) +#endif /* !defined INT_MIN */ + +/* +** The tz file format currently allows at most 32-bit quantities. +** This restriction should be removed before signed 32-bit values +** wrap around in 2038, but unfortunately this will require a +** change to the tz file format. +*/ + +#define MAX_BITS_IN_FILE 32 +#define TIME_T_BITS_IN_FILE ((TYPE_BIT(zic_t) < MAX_BITS_IN_FILE) ? \ + TYPE_BIT(zic_t) : MAX_BITS_IN_FILE) static void setboundaries P((void)) { register int i; - min_time = -1; - for (i = 0; i < TIME_T_BITS_IN_FILE - 1; ++i) - min_time *= 2; - max_time = -(min_time + 1); + if (TYPE_SIGNED(zic_t)) { + min_time = -1; + for (i = 0; i < TIME_T_BITS_IN_FILE - 1; ++i) + min_time *= 2; + max_time = -(min_time + 1); + if (sflag) + min_time = 0; + } else { + min_time = 0; + max_time = 2 - sflag; + for (i = 0; i < TIME_T_BITS_IN_FILE - 1; ++i) + max_time *= 2; + --max_time; + } + { + time_t t; + + t = (time_t) min_time; + min_year = TM_YEAR_BASE + gmtime(&t)->tm_year; + t = (time_t) max_time; + max_year = TM_YEAR_BASE + gmtime(&t)->tm_year; + } + min_year_representable = min_year; + max_year_representable = max_year; } static int @@ -981,8 +993,6 @@ const int nfields; fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]); r.r_name = ecpyalloc(fields[RF_NAME]); r.r_abbrvar = ecpyalloc(fields[RF_ABBRVAR]); - if (max_abbrvar_len < strlen(r.r_abbrvar)) - max_abbrvar_len = strlen(r.r_abbrvar); rules = (struct rule *) (void *) erealloc((char *) rules, (int) ((nrules + 1) * sizeof *rules)); rules[nrules++] = r; @@ -1088,8 +1098,6 @@ const int iscont; } z.z_rule = ecpyalloc(fields[i_rule]); z.z_format = ecpyalloc(fields[i_format]); - if (max_format_len < strlen(z.z_format)) - max_format_len = strlen(z.z_format); hasuntil = nfields > i_untilyear; if (hasuntil) { z.z_untilrule.r_filename = filename; @@ -1151,11 +1159,6 @@ const int nfields; error(_("invalid leaping year")); return; } - if (!leapseen || leapmaxyear < year) - leapmaxyear = year; - if (!leapseen || leapminyear > year) - leapminyear = year; - leapseen = TRUE; j = EPOCH_YEAR; while (j != year) { if (year > j) { @@ -1310,8 +1313,7 @@ const char * const timep; */ cp = loyearp; lp = byword(cp, begin_years); - rp->r_lowasnum = lp == NULL; - if (!rp->r_lowasnum) switch ((int) lp->l_value) { + if (lp != NULL) switch ((int) lp->l_value) { case YR_MINIMUM: rp->r_loyear = INT_MIN; break; @@ -1326,11 +1328,14 @@ const char * const timep; } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_loyear) != 1) { error(_("invalid starting year")); return; + } else if (noise) { + if (rp->r_loyear < min_year_representable) + warning(_("starting year too low to be represented")); + else if (rp->r_loyear > max_year_representable) + warning(_("starting year too high to be represented")); } cp = hiyearp; - lp = byword(cp, end_years); - rp->r_hiwasnum = lp == NULL; - if (!rp->r_hiwasnum) switch ((int) lp->l_value) { + if ((lp = byword(cp, end_years)) != NULL) switch ((int) lp->l_value) { case YR_MINIMUM: rp->r_hiyear = INT_MIN; break; @@ -1348,6 +1353,11 @@ const char * const timep; } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_hiyear) != 1) { error(_("invalid ending year")); return; + } else if (noise) { + if (rp->r_loyear < min_year_representable) + warning(_("ending year too low to be represented")); + else if (rp->r_loyear > max_year_representable) + warning(_("ending year too high to be represented")); } if (rp->r_loyear > rp->r_hiyear) { error(_("starting year greater than ending year")); @@ -1362,6 +1372,8 @@ const char * const timep; } rp->r_yrtype = ecpyalloc(typep); } + if (rp->r_loyear < min_year && rp->r_loyear > 0) + min_year = rp->r_loyear; /* ** Day work. ** Accept things such as: @@ -1415,25 +1427,13 @@ const long val; char * const buf; { register int i; - register int shift; + register long shift; for (i = 0, shift = 24; i < 4; ++i, shift -= 8) buf[i] = val >> shift; } static void -convert64(val, buf) -const zic_t val; -char * const buf; -{ - register int i; - register int shift; - - for (i = 0, shift = 56; i < 8; ++i, shift -= 8) - buf[i] = val >> shift; -} - -static void puttzcode(val, fp) const long val; FILE * const fp; @@ -1444,50 +1444,28 @@ FILE * const fp; (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp); } -static void -puttzcode64(val, fp) -const zic_t val; -FILE * const fp; -{ - char buf[8]; - - convert64(val, buf); - (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp); -} - static int atcomp(avp, bvp) -const void * avp; -const void * bvp; +void * avp; +void * bvp; { - const zic_t a = ((const struct attype *) avp)->at; - const zic_t b = ((const struct attype *) bvp)->at; - - return (a < b) ? -1 : (a > b); -} - -static int -is32(x) -const zic_t x; -{ - return INT32_MIN <= x && x <= INT32_MAX; + if (((struct attype *) avp)->at < ((struct attype *) bvp)->at) + return -1; + else if (((struct attype *) avp)->at > ((struct attype *) bvp)->at) + return 1; + else return 0; } static void -writezone(name, string) +writezone(name) const char * const name; -const char * const string; { - register FILE * fp; - register int i, j; - register int leapcnt32, leapi32; - register int timecnt32, timei32; - register int pass; - static char * fullname; - static const struct tzhead tzh0; - static struct tzhead tzh; - zic_t ats[TZ_MAX_TIMES]; - unsigned char types[TZ_MAX_TIMES]; + register FILE * fp; + register int i, j; + static char * fullname; + static struct tzhead tzh; + zic_t ats[TZ_MAX_TIMES]; + unsigned char types[TZ_MAX_TIMES]; /* ** Sort. @@ -1531,36 +1509,6 @@ const char * const string; ats[i] = attypes[i].at; types[i] = attypes[i].type; } - /* - ** Correct for leap seconds. - */ - for (i = 0; i < timecnt; ++i) { - j = leapcnt; - while (--j >= 0) - if (ats[i] > trans[j] - corr[j]) { - ats[i] = tadd(ats[i], corr[j]); - break; - } - } - /* - ** Figure out 32-bit-limited starts and counts. - */ - timecnt32 = timecnt; - timei32 = 0; - leapcnt32 = leapcnt; - leapi32 = 0; - while (timecnt32 > 0 && !is32(ats[timecnt32 - 1])) - --timecnt32; - while (timecnt32 > 0 && !is32(ats[timei32])) { - --timecnt32; - ++timei32; - } - while (leapcnt32 > 0 && !is32(trans[leapcnt32 - 1])) - --leapcnt32; - while (leapcnt32 > 0 && !is32(trans[leapi32])) { - --leapcnt32; - ++leapi32; - } fullname = erealloc(fullname, (int) (strlen(directory) + 1 + strlen(name) + 1)); (void) sprintf(fullname, "%s/%s", directory, name); @@ -1585,150 +1533,67 @@ const char * const string; exit(EXIT_FAILURE); } } - for (pass = 1; pass <= 2; ++pass) { - register int thistimei, thistimecnt; - register int thisleapi, thisleapcnt; - register int thistimelim, thisleaplim; - int writetype[TZ_MAX_TIMES]; - int typemap[TZ_MAX_TYPES]; - register int thistypecnt; - char thischars[TZ_MAX_CHARS]; - char thischarcnt; - int indmap[TZ_MAX_CHARS]; - - if (pass == 1) { - thistimei = timei32; - thistimecnt = timecnt32; - thisleapi = leapi32; - thisleapcnt = leapcnt32; - } else { - thistimei = 0; - thistimecnt = timecnt; - thisleapi = 0; - thisleapcnt = leapcnt; - } - thistimelim = thistimei + thistimecnt; - thisleaplim = thisleapi + thisleapcnt; - for (i = 0; i < typecnt; ++i) - writetype[i] = thistimecnt == timecnt; - if (thistimecnt == 0) { - /* - ** No transition times fall in the current - ** (32- or 64-bit) window. - */ - if (typecnt != 0) - writetype[typecnt - 1] = TRUE; - } else { - for (i = thistimei - 1; i < thistimelim; ++i) - if (i >= 0) - writetype[types[i]] = TRUE; - /* - ** For America/Godthab and Antarctica/Palmer - */ - if (thistimei == 0) - writetype[0] = TRUE; - } - thistypecnt = 0; - for (i = 0; i < typecnt; ++i) - typemap[i] = writetype[i] ? thistypecnt++ : -1; - for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i) - indmap[i] = -1; - thischarcnt = 0; - for (i = 0; i < typecnt; ++i) { - register char * thisabbr; - - if (!writetype[i]) - continue; - if (indmap[abbrinds[i]] >= 0) - continue; - thisabbr = &chars[abbrinds[i]]; - for (j = 0; j < thischarcnt; ++j) - if (strcmp(&thischars[j], thisabbr) == 0) - break; - if (j == thischarcnt) { - (void) strcpy(&thischars[(int) thischarcnt], - thisabbr); - thischarcnt += strlen(thisabbr) + 1; - } - indmap[abbrinds[i]] = j; - } + convert(eitol(typecnt), tzh.tzh_ttisgmtcnt); + convert(eitol(typecnt), tzh.tzh_ttisstdcnt); + convert(eitol(leapcnt), tzh.tzh_leapcnt); + convert(eitol(timecnt), tzh.tzh_timecnt); + convert(eitol(typecnt), tzh.tzh_typecnt); + convert(eitol(charcnt), tzh.tzh_charcnt); + (void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic); #define DO(field) (void) fwrite((void *) tzh.field, \ (size_t) sizeof tzh.field, (size_t) 1, fp) - tzh = tzh0; - (void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic); - tzh.tzh_version[0] = ZIC_VERSION; - convert(eitol(thistypecnt), tzh.tzh_ttisgmtcnt); - convert(eitol(thistypecnt), tzh.tzh_ttisstdcnt); - convert(eitol(thisleapcnt), tzh.tzh_leapcnt); - convert(eitol(thistimecnt), tzh.tzh_timecnt); - convert(eitol(thistypecnt), tzh.tzh_typecnt); - convert(eitol(thischarcnt), tzh.tzh_charcnt); - DO(tzh_magic); - DO(tzh_version); - DO(tzh_reserved); - DO(tzh_ttisgmtcnt); - DO(tzh_ttisstdcnt); - DO(tzh_leapcnt); - DO(tzh_timecnt); - DO(tzh_typecnt); - DO(tzh_charcnt); + DO(tzh_magic); + DO(tzh_reserved); + DO(tzh_ttisgmtcnt); + DO(tzh_ttisstdcnt); + DO(tzh_leapcnt); + DO(tzh_timecnt); + DO(tzh_typecnt); + DO(tzh_charcnt); #undef DO - for (i = thistimei; i < thistimelim; ++i) - if (pass == 1) - puttzcode((long) ats[i], fp); - else puttzcode64(ats[i], fp); - for (i = thistimei; i < thistimelim; ++i) { - unsigned char uc; - - uc = typemap[types[i]]; - (void) fwrite((void *) &uc, - (size_t) sizeof uc, - (size_t) 1, - fp); - } - for (i = 0; i < typecnt; ++i) - if (writetype[i]) { - puttzcode(gmtoffs[i], fp); - (void) putc(isdsts[i], fp); - (void) putc((unsigned char) indmap[abbrinds[i]], fp); + for (i = 0; i < timecnt; ++i) { + j = leapcnt; + while (--j >= 0) + if (ats[i] >= trans[j]) { + ats[i] = tadd(ats[i], corr[j]); + break; } - if (thischarcnt != 0) - (void) fwrite((void *) thischars, - (size_t) sizeof thischars[0], - (size_t) thischarcnt, fp); - for (i = thisleapi; i < thisleaplim; ++i) { - register zic_t todo; - - if (roll[i]) { - if (timecnt == 0 || trans[i] < ats[0]) { - j = 0; - while (isdsts[j]) - if (++j >= typecnt) { - j = 0; - break; - } - } else { - j = 1; - while (j < timecnt && - trans[i] >= ats[j]) - ++j; - j = types[j - 1]; - } - todo = tadd(trans[i], -gmtoffs[j]); - } else todo = trans[i]; - if (pass == 1) - puttzcode((long) todo, fp); - else puttzcode64(todo, fp); - puttzcode(corr[i], fp); - } - for (i = 0; i < typecnt; ++i) - if (writetype[i]) - (void) putc(ttisstds[i], fp); - for (i = 0; i < typecnt; ++i) - if (writetype[i]) - (void) putc(ttisgmts[i], fp); - } - (void) fprintf(fp, "\n%s\n", string); + puttzcode((long) ats[i], fp); + } + if (timecnt > 0) + (void) fwrite((void *) types, (size_t) sizeof types[0], + (size_t) timecnt, fp); + for (i = 0; i < typecnt; ++i) { + puttzcode((long) gmtoffs[i], fp); + (void) putc(isdsts[i], fp); + (void) putc(abbrinds[i], fp); + } + if (charcnt != 0) + (void) fwrite((void *) chars, (size_t) sizeof chars[0], + (size_t) charcnt, fp); + for (i = 0; i < leapcnt; ++i) { + if (roll[i]) { + if (timecnt == 0 || trans[i] < ats[0]) { + j = 0; + while (isdsts[j]) + if (++j >= typecnt) { + j = 0; + break; + } + } else { + j = 1; + while (j < timecnt && trans[i] >= ats[j]) + ++j; + j = types[j - 1]; + } + puttzcode((long) tadd(trans[i], -gmtoffs[j]), fp); + } else puttzcode((long) trans[i], fp); + puttzcode((long) corr[i], fp); + } + for (i = 0; i < typecnt; ++i) + (void) putc(ttisstds[i], fp); + for (i = 0; i < typecnt; ++i) + (void) putc(ttisgmts[i], fp); if (ferror(fp) || fclose(fp)) { (void) fprintf(stderr, _("%s: Error writing %s\n"), progname, fullname); @@ -1737,223 +1602,21 @@ const char * const string; } static void -doabbr(abbr, format, letters, isdst, doquotes) +doabbr(abbr, format, letters, isdst) char * const abbr; const char * const format; const char * const letters; const int isdst; -const int doquotes; { - register char * cp; - register char * slashp; - register int len; - - slashp = strchr(format, '/'); - if (slashp == NULL) { + if (strchr(format, '/') == NULL) { if (letters == NULL) (void) strcpy(abbr, format); else (void) sprintf(abbr, format, letters); - } else if (isdst) { - (void) strcpy(abbr, slashp + 1); - } else { - if (slashp > format) - (void) strncpy(abbr, format, - (unsigned) (slashp - format)); - abbr[slashp - format] = '\0'; - } - if (!doquotes) - return; - for (cp = abbr; *cp != '\0'; ++cp) - if (strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", *cp) == NULL && - strchr("abcdefghijklmnopqrstuvwxyz", *cp) == NULL) - break; - len = strlen(abbr); - if (len > 0 && *cp == '\0') - return; - abbr[len + 2] = '\0'; - abbr[len + 1] = '>'; - for ( ; len > 0; --len) - abbr[len] = abbr[len - 1]; - abbr[0] = '<'; -} - -static void -updateminmax(x) -const int x; -{ - if (min_year > x) - min_year = x; - if (max_year < x) - max_year = x; -} - -static int -stringoffset(result, offset) -char * result; -long offset; -{ - register int hours; - register int minutes; - register int seconds; - - result[0] = '\0'; - if (offset < 0) { - (void) strcpy(result, "-"); - offset = -offset; - } - seconds = offset % SECSPERMIN; - offset /= SECSPERMIN; - minutes = offset % MINSPERHOUR; - offset /= MINSPERHOUR; - hours = offset; - if (hours >= HOURSPERDAY) { - result[0] = '\0'; - return -1; - } - (void) sprintf(end(result), "%d", hours); - if (minutes != 0 || seconds != 0) { - (void) sprintf(end(result), ":%02d", minutes); - if (seconds != 0) - (void) sprintf(end(result), ":%02d", seconds); - } - return 0; -} - -static int -stringrule(result, rp, dstoff, gmtoff) -char * result; -const struct rule * const rp; -const long dstoff; -const long gmtoff; -{ - register long tod; - - result = end(result); - if (rp->r_dycode == DC_DOM) { - register int month, total; - - if (rp->r_dayofmonth == 29 && rp->r_month == TM_FEBRUARY) - return -1; - total = 0; - for (month = 0; month < rp->r_month; ++month) - total += len_months[0][month]; - (void) sprintf(result, "J%d", total + rp->r_dayofmonth); - } else { - register int week; - - if (rp->r_dycode == DC_DOWGEQ) { - week = 1 + rp->r_dayofmonth / DAYSPERWEEK; - if ((week - 1) * DAYSPERWEEK + 1 != rp->r_dayofmonth) - return -1; - } else if (rp->r_dycode == DC_DOWLEQ) { - if (rp->r_dayofmonth == len_months[1][rp->r_month]) - week = 5; - else { - week = 1 + rp->r_dayofmonth / DAYSPERWEEK; - if (week * DAYSPERWEEK - 1 != rp->r_dayofmonth) - return -1; - } - } else return -1; /* "cannot happen" */ - (void) sprintf(result, "M%d.%d.%d", - rp->r_month + 1, week, rp->r_wday); - } - tod = rp->r_tod; - if (rp->r_todisgmt) - tod += gmtoff; - if (rp->r_todisstd && rp->r_stdoff == 0) - tod += dstoff; - if (tod < 0) { - result[0] = '\0'; - return -1; - } - if (tod != 2 * SECSPERMIN * MINSPERHOUR) { - (void) strcat(result, "/"); - if (stringoffset(end(result), tod) != 0) - return -1; - } - return 0; -} - -static void -stringzone(result, zpfirst, zonecount) -char * result; -const struct zone * const zpfirst; -const int zonecount; -{ - register const struct zone * zp; - register struct rule * rp; - register struct rule * stdrp; - register struct rule * dstrp; - register int i; - register const char * abbrvar; - - result[0] = '\0'; - zp = zpfirst + zonecount - 1; - stdrp = dstrp = NULL; - for (i = 0; i < zp->z_nrules; ++i) { - rp = &zp->z_rules[i]; - if (rp->r_hiwasnum || rp->r_hiyear != INT_MAX) - continue; - if (rp->r_yrtype != NULL) - continue; - if (rp->r_stdoff == 0) { - if (stdrp == NULL) - stdrp = rp; - else return; - } else { - if (dstrp == NULL) - dstrp = rp; - else return; - } - } - if (stdrp == NULL && dstrp == NULL) { - /* - ** There are no rules running through "max". - ** Let's find the latest rule. - */ - for (i = 0; i < zp->z_nrules; ++i) { - rp = &zp->z_rules[i]; - if (stdrp == NULL || rp->r_hiyear > stdrp->r_hiyear || - (rp->r_hiyear == stdrp->r_hiyear && - rp->r_month > stdrp->r_month)) - stdrp = rp; - } - if (stdrp != NULL && stdrp->r_stdoff != 0) - return; /* We end up in DST (a POSIX no-no). */ - /* - ** Horrid special case: if year is 2037, - ** presume this is a zone handled on a year-by-year basis; - ** do not try to apply a rule to the zone. - */ - if (stdrp != NULL && stdrp->r_hiyear == 2037) - return; - } - if (stdrp == NULL && zp->z_nrules != 0) - return; - abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; - doabbr(result, zp->z_format, abbrvar, FALSE, TRUE); - if (stringoffset(end(result), -zp->z_gmtoff) != 0) { - result[0] = '\0'; - return; - } - if (dstrp == NULL) - return; - doabbr(end(result), zp->z_format, dstrp->r_abbrvar, TRUE, TRUE); - if (dstrp->r_stdoff != SECSPERMIN * MINSPERHOUR) - if (stringoffset(end(result), - -(zp->z_gmtoff + dstrp->r_stdoff)) != 0) { - result[0] = '\0'; - return; - } - (void) strcat(result, ","); - if (stringrule(result, dstrp, dstrp->r_stdoff, zp->z_gmtoff) != 0) { - result[0] = '\0'; - return; - } - (void) strcat(result, ","); - if (stringrule(result, stdrp, dstrp->r_stdoff, zp->z_gmtoff) != 0) { - result[0] = '\0'; - return; + } else if (isdst) + (void) strcpy(abbr, strchr(format, '/') + 1); + else { + (void) strcpy(abbr, format); + *strchr(abbr, '/') = '\0'; } } @@ -1974,17 +1637,8 @@ const int zonecount; register int startttisstd; register int startttisgmt; register int type; - register char * startbuf; - register char * ab; - register char * envvar; - register int max_abbr_len; - register int max_envvar_len; - - max_abbr_len = 2 + max_format_len + max_abbrvar_len; - max_envvar_len = 2 * max_abbr_len + 5 * 9; - startbuf = emalloc(max_abbr_len + 1); - ab = emalloc(max_abbr_len + 1); - envvar = emalloc(max_envvar_len + 1); + char startbuf[BUFSIZ]; + INITIALIZE(untiltime); INITIALIZE(starttime); /* @@ -1999,48 +1653,6 @@ const int zonecount; */ startttisstd = FALSE; startttisgmt = FALSE; - min_year = max_year = EPOCH_YEAR; - if (leapseen) { - updateminmax(leapminyear); - updateminmax(leapmaxyear); - } - for (i = 0; i < zonecount; ++i) { - zp = &zpfirst[i]; - updateminmax(zp->z_untilrule.r_loyear); - for (j = 0; j < zp->z_nrules; ++j) { - rp = &zp->z_rules[j]; - if (rp->r_lowasnum) - updateminmax(rp->r_loyear); - if (rp->r_hiwasnum) - updateminmax(rp->r_hiyear); - } - } - /* - ** Generate lots of data if a rule can't cover all future times. - */ - stringzone(envvar, zpfirst, zonecount); - if (noise && envvar[0] == '\0') { - register char * wp; - -wp = ecpyalloc(_("no POSIX environment variable for zone")); - wp = ecatalloc(wp, " "); - wp = ecatalloc(wp, zpfirst->z_name); - warning(wp); - ifree(wp); - } - if (envvar[0] == '\0') { - if (min_year >= INT_MIN + YEARSPERREPEAT) - min_year -= YEARSPERREPEAT; - else min_year = INT_MIN; - if (max_year <= INT_MAX - YEARSPERREPEAT) - max_year += YEARSPERREPEAT; - else max_year = INT_MAX; - } - /* - ** For the benefit of older systems, generate data through 2037. - */ - if (max_year < 2037) - max_year = 2037; for (i = 0; i < zonecount; ++i) { /* ** A guess that may well be corrected later. @@ -2058,7 +1670,7 @@ wp = ecpyalloc(_("no POSIX environment variable for zone")); if (zp->z_nrules == 0) { stdoff = zp->z_stdoff; doabbr(startbuf, zp->z_format, - (char *) NULL, stdoff != 0, FALSE); + (char *) NULL, stdoff != 0); type = addtype(oadd(zp->z_gmtoff, stdoff), startbuf, stdoff != 0, startttisstd, startttisgmt); @@ -2088,6 +1700,7 @@ wp = ecpyalloc(_("no POSIX environment variable for zone")); register int k; register zic_t jtime, ktime; register long offset; + char buf[BUFSIZ]; INITIALIZE(ktime); if (useuntil) { @@ -2143,27 +1756,24 @@ wp = ecpyalloc(_("no POSIX environment variable for zone")); stdoff); doabbr(startbuf, zp->z_format, rp->r_abbrvar, - rp->r_stdoff != 0, - FALSE); + rp->r_stdoff != 0); continue; } if (*startbuf == '\0' && startoff == oadd(zp->z_gmtoff, - stdoff)) { + stdoff)) doabbr(startbuf, zp->z_format, rp->r_abbrvar, rp->r_stdoff != - 0, - FALSE); - } + 0); } eats(zp->z_filename, zp->z_linenum, rp->r_filename, rp->r_linenum); - doabbr(ab, zp->z_format, rp->r_abbrvar, - rp->r_stdoff != 0, FALSE); + doabbr(buf, zp->z_format, rp->r_abbrvar, + rp->r_stdoff != 0); offset = oadd(zp->z_gmtoff, rp->r_stdoff); - type = addtype(offset, ab, rp->r_stdoff != 0, + type = addtype(offset, buf, rp->r_stdoff != 0, rp->r_todisstd, rp->r_todisgmt); addtt(ktime, type); } @@ -2196,10 +1806,7 @@ error(_("can't determine time zone abbreviation to use just after until time")); starttime = tadd(starttime, -gmtoff); } } - writezone(zpfirst->z_name, envvar); - ifree(startbuf); - ifree(ab); - ifree(envvar); + writezone(zpfirst->z_name); } static void @@ -2578,6 +2185,8 @@ register const int wantedy; will not work with pre-2004 versions of zic")); } } + if (dayoff < 0 && !TYPE_SIGNED(zic_t)) + return min_time; if (dayoff < min_time / SECSPERDAY) return min_time; if (dayoff > max_time / SECSPERDAY) diff --git a/timezone/zone.tab b/timezone/zone.tab index aecb5bb..09cdf69 100644 --- a/timezone/zone.tab +++ b/timezone/zone.tab @@ -1,4 +1,4 @@ -# @(#)zone.tab 8.5 +# @(#)zone.tab 8.1 # # TZ zone descriptions # @@ -44,7 +44,7 @@ AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF, SL) AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) -AR -2649-06513 America/Argentina/Tucuman Tucuman (TM) +AR -3124-06411 America/Argentina/Tucuman Tucuman (TM) AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) @@ -99,28 +99,27 @@ BT +2728+08939 Asia/Thimphu BW -2545+02555 Africa/Gaborone BY +5354+02734 Europe/Minsk BZ +1730-08812 America/Belize -CA +4734-05243 America/St_Johns Newfoundland Time, including SE Labrador -CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), PEI +CA +4734-05243 America/St_Johns Newfoundland Island +CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), W Labrador, E Quebec & PEI CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971 CA +4606-06447 America/Moncton Atlantic Time - New Brunswick -CA +5320-06025 America/Goose_Bay Atlantic Time - Labrador - most locations -CA +5125-05707 America/Blanc-Sablon Atlantic Standard Time - Quebec - Lower North Shore +CA +5320-06025 America/Goose_Bay Atlantic Time - E Labrador CA +4531-07334 America/Montreal Eastern Time - Quebec - most locations CA +4339-07923 America/Toronto Eastern Time - Ontario - most locations CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut CA +6344-06828 America/Iqaluit Eastern Time - east 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 +6408-08310 America/Coral_Harbour Eastern Standard Time - Southampton Island +CA +6245-09210 America/Rankin_Inlet Central Time - central Nunavut CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario -CA +4843-09434 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario +CA +4843-09429 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario CA +6903-10505 America/Cambridge_Bay Central Time - west Nunavut CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories -CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories +CA +6825-11330 America/Inuvik Mountain Time - west Northwest Territories CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia CA +4916-12307 America/Vancouver Pacific Time - west British Columbia CA +6043-13503 America/Whitehorse Pacific Time - south Yukon @@ -137,12 +136,13 @@ CL -3327-07040 America/Santiago most locations CL -2710-10927 Pacific/Easter Easter Island & Sala y Gomez CM +0403+00942 Africa/Douala CN +3114+12128 Asia/Shanghai east China - Beijing, Guangdong, Shanghai, etc. -CN +4545+12641 Asia/Harbin Heilongjiang (except Mohe), Jilin -CN +2934+10635 Asia/Chongqing central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc. -CN +4348+08735 Asia/Urumqi most of Tibet & Xinjiang -CN +3929+07559 Asia/Kashgar west Tibet & Xinjiang +CN +4545+12641 Asia/Harbin Heilongjiang +CN +2934+10635 Asia/Chongqing central China - Gansu, Guizhou, Sichuan, Yunnan, etc. +CN +4348+08735 Asia/Urumqi Tibet & most of Xinjiang Uyghur +CN +3929+07559 Asia/Kashgar southwest Xinjiang Uyghur CO +0436-07405 America/Bogota CR +0956-08405 America/Costa_Rica +CS +4450+02030 Europe/Belgrade CU +2308-08222 America/Havana CV +1455-02331 Atlantic/Cape_Verde CX -1025+10543 Indian/Christmas @@ -177,12 +177,11 @@ GB +512830-0001845 Europe/London GD +1203-06145 America/Grenada GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne -GG +4927-00232 Europe/Guernsey GH +0533-00013 Africa/Accra GI +3608-00521 Europe/Gibraltar GL +6411-05144 America/Godthab most locations GL +7646-01840 America/Danmarkshavn east coast, north of Scoresbysund -GL +7029-02158 America/Scoresbysund Scoresbysund / Ittoqqortoormiit +GL +7030-02215 America/Scoresbysund Scoresbysund / Ittoqqortoormiit GL +7634-06847 America/Thule Thule / Pituffik GM +1328-01639 Africa/Banjul GN +0931-01343 Africa/Conakry @@ -205,14 +204,12 @@ ID -0507+11924 Asia/Makassar east & south Borneo, Celebes, Bali, Nusa Tengarra, ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas IE +5320-00615 Europe/Dublin IL +3146+03514 Asia/Jerusalem -IM +5409-00428 Europe/Isle_of_Man IN +2232+08822 Asia/Calcutta IO -0720+07225 Indian/Chagos IQ +3321+04425 Asia/Baghdad IR +3540+05126 Asia/Tehran IS +6409-02151 Atlantic/Reykjavik IT +4154+01229 Europe/Rome -JE +4912-00237 Europe/Jersey JM +1800-07648 America/Jamaica JO +3157+03556 Asia/Amman JP +353916+1394441 Asia/Tokyo @@ -247,7 +244,6 @@ LY +3254+01311 Africa/Tripoli MA +3339-00735 Africa/Casablanca MC +4342+00723 Europe/Monaco MD +4700+02850 Europe/Chisinau -ME +4247+01928 Europe/Podgorica MG -1855+04731 Indian/Antananarivo MH +0709+17112 Pacific/Majuro most locations MH +0905+16720 Pacific/Kwajalein Kwajalein @@ -261,7 +257,7 @@ MO +2214+11335 Asia/Macau MP +1512+14545 Pacific/Saipan MQ +1436-06105 America/Martinique MR +1806-01557 Africa/Nouakchott -MS +1643-06213 America/Montserrat +MS +1644-06213 America/Montserrat MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives @@ -312,11 +308,9 @@ PY -2516-05740 America/Asuncion QA +2517+05132 Asia/Qatar RE -2052+05528 Indian/Reunion RO +4426+02606 Europe/Bucharest -RS +4450+02030 Europe/Belgrade RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad RU +5545+03735 Europe/Moscow Moscow+00 - west Russia -RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea -RU +5312+05009 Europe/Samara Moscow+01 - Samara, Udmurtia +RU +5312+05009 Europe/Samara Moscow+01 - Caspian Sea RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk @@ -382,11 +376,10 @@ US +382232-0862041 America/Indiana/Marengo Eastern Time - Indiana - Crawford Cou US +411745-0863730 America/Indiana/Knox Eastern Time - Indiana - Starke County US +384452-0850402 America/Indiana/Vevay Eastern Time - Indiana - Switzerland County US +415100-0873900 America/Chicago Central Time -US +384038-0873143 America/Indiana/Vincennes Central Time - Indiana - Daviess, Dubois, Knox, Martin, Perry & Pulaski Counties +US +384038-0873143 America/Indiana/Vincennes Central Time - Indiana - Daviess, Dubois, Knox, Martin, Perry & Pulaski US +382931-0871643 America/Indiana/Petersburg Central Time - Indiana - Pike County US +450628-0873651 America/Menominee Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties US +470659-1011757 America/North_Dakota/Center Central Time - North Dakota - Oliver County -US +465042-1012439 America/North_Dakota/New_Salem Central Time - North Dakota - Morton County (except Mandan area) US +394421-1045903 America/Denver Mountain Time US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon US +364708-1084111 America/Shiprock Mountain Time - Navajo |