* backzone: New file. * Makefile (DATA): Add backzone. (check_character_set): Check it. (posix_packrat): New rule. (.PHONY): Add it. * NEWS: Document the above. --- Makefile | 19 ++-- NEWS | 7 ++ backzone | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 374 insertions(+), 6 deletions(-) create mode 100644 backzone diff --git a/Makefile b/Makefile index d0109bb..5bbd7e7 100644 --- a/Makefile +++ b/Makefile @@ -84,9 +84,11 @@ LIBDIR= $(TOPDIR)/lib # below. If you want both sets of data available, with leap seconds counted # normally, use # REDO= right_posix -# below. +# below. If you want just POSIX-compatible time values, but with extra +# lower-quality data from the file 'backzone', use +# REDO= posix_packrat # POSIX mandates that leap seconds not be counted; for compatibility with it, -# use either "posix_only" or "posix_right". +# use "posix_only", "posix_right", or "posix_packrat". REDO= posix_right @@ -344,7 +346,7 @@ TDATA= $(YDATA) $(NDATA) ZONETABLES= zone1970.tab zone.tab TABDATA= iso3166.tab leapseconds $(ZONETABLES) LEAP_DEPS= leapseconds.awk leap-seconds.list -DATA= $(YDATA) $(NDATA) $(TABDATA) \ +DATA= $(YDATA) $(NDATA) backzone $(TABDATA) \ leap-seconds.list yearistype.sh AWK_SCRIPTS= checktab.awk leapseconds.awk MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl @@ -430,6 +432,11 @@ posix_right: posix_only leapseconds $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR)-leaps \ -L leapseconds $(TDATA) +posix_packrat: posix_only backzone + $(AWK) '/^Rule/' $(TDATA) | \ + $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \ + -L /dev/null - backzone + zones: $(REDO) libtz.a: $(LIBOBJS) @@ -457,8 +464,8 @@ check_character_set: $(ENCHILADA) sharp='#' && \ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ $(MISC) $(SOURCES) $(WEB_PAGES) && \ - ! grep -Env $(SAFE_SHARP_LINE) $(YDATA) $(NDATA) iso3166.tab \ - zone.tab leapseconds yearistype.sh && \ + ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \ + iso3166.tab leapseconds yearistype.sh zone.tab && \ test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \ ! grep -Env $(NONSYM_LINE) CONTRIBUTING NEWS README Theory \ $(MANS) date.1 zone1970.tab && \ @@ -625,6 +632,6 @@ zic.o: private.h tzfile.h version.h .PHONY: ALL INSTALL all .PHONY: check check_character_set check_public check_tables .PHONY: check_time_t_alternatives check_web check_white_space clean clean_misc -.PHONY: install maintainer-clean names posix_only posix_right +.PHONY: install maintainer-clean names posix_packrat posix_only posix_right .PHONY: public right_only right_posix signatures tarballs typecheck .PHONY: zonenames zones diff --git a/NEWS b/NEWS index 042f69a..7f27802 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,13 @@ Unreleased, experimental changes Asia/Dakha ended DST on 2009-12-31 at 24:00, not 23:59. + A new file 'backzone' contains data which may appeal to + connoisseurs of old time stamps, although it is out of scope for + the tz database and is often poorly sourced. The new file is not + recommended for ordinary use and its entries are not installed by + default. (Thanks to Lester Caine for the Guernsey, Jersey, and + Isle of Man entries in 'backzone'.) + Changes affecting code tzselect -c now uses a hybrid distance measure that works better diff --git a/backzone b/backzone new file mode 100644 index 0000000..b9c9433 --- /dev/null +++ b/backzone @@ -0,0 +1,354 @@ +# Zones that go back beyond the scope of the tz database + +# This file is in the public domain. + +# This file is by no means authoritative; if you think you know +# better, go ahead and edit it (and please send any changes to +# tz@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. + + +# From Paul Eggert (2014-08-12): + +# This file contains data outside the normal scope of the tz database, +# in that its zones do not differ from normal tz zones after 1970. +# Links in this file point to zones in this file, superseding links in +# the file 'backward'. + +# Although zones in this file may be of some use for analyzing +# pre-1970 time stamps, they are less reliable, cover only a tiny +# sliver of the pre-1970 era, and cannot feasibly be improved to cover +# most of the era. Because the zones are out of normal scope for the +# database, less effort is put into maintaining this file. Many of +# the zones were formerly in other source files, but were removed or +# replaced by links as their data were questionable and/or they +# differed from other zones only in pre-1970 time stamps. + +# Unless otherwise specified, the source for the data is the following, +# which does not itself cite sources and is often wrong: +# +# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), +# San Diego: ACS Publications, Inc. (2003). + +# This file is not intended to be compiled standalone, as it +# assumes rules from other files. In the tz distribution, use +# 'make posix_packrat' to compile this file. + +# Zones are sorted by zone name. Each zone is preceded by the +# name of the country that the zone is in, along with any other +# commentary and rules associated with the entry. + +# Mali (southern) +Zone Africa/Bamako -0:32:00 - LMT 1912 + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 Jun 20 + 0:00 - GMT + +# Gambia +Zone Africa/Banjul -1:06:36 - LMT 1912 + -1:06:36 - BMT 1935 # Banjul Mean Time + -1:00 - WAT 1964 + 0:00 - GMT + +# Guinea +Zone Africa/Conakry -0:54:52 - LMT 1912 + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 + 0:00 - GMT + +# Senegal +Zone Africa/Dakar -1:09:44 - LMT 1912 + -1:00 - WAT 1941 Jun + 0:00 - GMT + +# Sierra Leone +# From Paul Eggert (2014-08-12): +# The following table is from Shanks & Pottenger, but it can't be right. +# Whitman gives Mar 31 - Aug 31 for 1931 on. +# The International Hydrographic Bulletin, 1932-33, p 63 says that +# Sierra Leone would advance its clocks by 20 monutes on 1933-10-01. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +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 +Rule SL 1957 1962 - Sep 1 0:00 0 GMT +Zone Africa/Freetown -0:53:00 - LMT 1882 + -0:53:00 - FMT 1913 Jun # Freetown Mean Time + -1:00 SL %s 1957 + 0:00 SL %s + +# South Sudan +Zone Africa/Juba 2:06:24 - LMT 1931 + 2:00 Sudan CA%sT 2000 Jan 15 12:00 + 3:00 - EAT + +# Togo +Zone Africa/Lome 0:04:52 - LMT 1893 + 0:00 - GMT + +# Mauritania +Zone Africa/Nouakchott -1:03:48 - LMT 1912 + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 Nov 28 + 0:00 - GMT + +# Burkina Faso +Zone Africa/Ouagadougou -0:06:04 - LMT 1912 + 0:00 - GMT + +# São Tomé and Príncipe +Zone Africa/Sao_Tome 0:26:56 - LMT 1884 + -0:36:32 - LMT 1912 # Lisbon Mean Time + 0:00 - GMT + +# Mali (northern) +Zone Africa/Timbuktu -0:12:04 - LMT 1912 + 0:00 - GMT + +# Anguilla +Zone America/Anguilla -4:12:16 - LMT 1912 Mar 2 + -4:00 - AST + +# Chubut, Argentina +# The name "Comodoro Rivadavia" exceeds the 14-byte POSIX limit. +Zone America/Argentina/ComodRivadavia -4:30:00 - LMT 1894 Oct 31 + -4:16:48 - CMT 1920 May + -4:00 - ART 1930 Dec + -4:00 Arg AR%sT 1969 Oct 5 + -3:00 Arg AR%sT 1991 Mar 3 + -4:00 - WART 1991 Oct 20 + -3:00 Arg AR%sT 1999 Oct 3 + -4:00 Arg AR%sT 2000 Mar 3 + -3:00 - ART 2004 Jun 1 + -4:00 - WART 2004 Jun 20 + -3:00 - ART + +# Aruba +Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad + -4:30 - ANT 1965 # Netherlands Antilles Time + -4:00 - AST + +# Canada +Zone America/Coral_Harbour -5:32:40 - LMT 1884 + -5:00 NT_YK E%sT 1946 + -5:00 - EST + +# Dominica +Zone America/Dominica -4:05:36 - LMT 1911 Jul 1 0:01 # Roseau + -4:00 - AST + +# Baja California +# See 'northamerica' for why this entry is here rather than there. +Zone America/Ensenada -7:46:28 - LMT 1922 Jan 1 0:13:32 + -8:00 - PST 1927 Jun 10 23:00 + -7:00 - MST 1930 Nov 16 + -8:00 - PST 1942 Apr + -7:00 - MST 1949 Jan 14 + -8:00 - PST 1996 + -8:00 Mexico P%sT + +# Grenada +Zone America/Grenada -4:07:00 - LMT 1911 Jul # St George's + -4:00 - AST + +# Guadeloupe +Zone America/Guadeloupe -4:06:08 - LMT 1911 Jun 8 # Pointe a Pitre + -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. +Zone America/Montserrat -4:08:52 - LMT 1911 Jul 1 0:01 # Cork Hill + -4:00 - AST + +# Argentina +# This entry was intended for the following areas, but has been superseded by +# more detailed zones. +# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC), +# Formosa (FM), La Pampa (LP), Chubut (CH) +Zone America/Rosario -4:02:40 - LMT 1894 Nov + -4:16:44 - CMT 1920 May + -4:00 - ART 1930 Dec + -4:00 Arg AR%sT 1969 Oct 5 + -3:00 Arg AR%sT 1991 Jul + -3:00 - ART 1999 Oct 3 0:00 + -4:00 Arg AR%sT 2000 Mar 3 0:00 + -3:00 - ART + +# St Kitts-Nevis +Zone America/St_Kitts -4:10:52 - LMT 1912 Mar 2 # Basseterre + -4:00 - AST + +# St Lucia +Zone America/St_Lucia -4:04:00 - LMT 1890 # Castries + -4:04:00 - CMT 1912 # Castries Mean Time + -4:00 - AST + +# Virgin Is +Zone America/St_Thomas -4:19:44 - LMT 1911 Jul # Charlotte Amalie + -4:00 - AST + +# St Vincent and the Grenadines +Zone America/St_Vincent -4:04:56 - LMT 1890 # Kingstown + -4:04:56 - KMT 1912 # Kingstown Mean Time + -4:00 - AST + +# British Virgin Is +Zone America/Tortola -4:18:28 - LMT 1911 Jul # Road Town + -4:00 - AST + +# McMurdo, Ross Island, since 1955-12 +Zone Antarctica/McMurdo 0 - zzz 1956 + 12:00 NZ NZ%sT +Link Antarctica/McMurdo Antarctica/South_Pole + +# China +# 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 + 9:00 - CHAT 1966 May + 8:30 - CHAT 1980 May + 8:00 PRC C%sT + +# China +# 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 +Link Asia/Chongqing Asia/Chungking + +# far west China +Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar + 5:30 - KAST 1940 # Kashgar Time + 5:00 - KAST 1980 May + 8:00 PRC C%sT + +# Israel +Zone Asia/Tel_Aviv 2:19:04 - LMT 1880 + 2:21 - JMT 1918 + 2:00 Zion I%sT + +# Jan Mayen +# From Whitman: +Zone Atlantic/Jan_Mayen -1:00 - EGT + +# St Helena +Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown + -0:22:48 - JMT 1951 # Jamestown Mean Time + 0:00 - GMT + +# Northern Ireland +Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2 + -0:25:21 - DMT 1916 May 21 2:00 + # DMT = Dublin/Dunsink MT + -0:25:21 1:00 IST 1916 Oct 1 2:00s + # IST = Irish Summer Time + 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 + +# Guernsey +# Data from Joseph S. Myers +# http://mm.icann.org/pipermail/tz/2013-September/019883.html +# References to be added +# LMT Location - 49.27N -2.33E - St.Peter Port +Zone Europe/Guernsey -0:09:19 - LMT 1913 Jun 18 + 0:00 GB-Eire %s 1940 Jul 2 + 1:00 C-Eur CE%sT 1945 May 8 + 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 + +# Isle of Man +# +# From Lester Caine (2013-09-04): +# The Isle of Man legislation is now on-line at +# <http://www.legislation.gov.im>, starting with the original Statutory +# Time Act in 1883 and including additional confirmation of some of +# the dates of the 'Summer Time' orders originating at +# Westminster. There is a little uncertinity as to the starting date +# of the first summer time in 1916 which may have be announced a +# couple of days late. There is still a substatial number of +# documents to work through, but it is thought that every GB change +# was also implemented on the island. +# +# AT4 of 1883 - The Statutory Time et cetera Act 1883 - +# LMT Location - 54.1508N -4.4814E - Tynwald Hill ( Manx parliament ) +Zone Europe/Isle_of_Man -0:17:55 - LMT 1883 March 30 0:00s + 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 + +# Jersey +# Data from Joseph S. Myers +# http://mm.icann.org/pipermail/tz/2013-September/019883.html +# References to be added +# LMT Location - 49.187N -2.107E - St. Hellier +Zone Europe/Jersey -0:08:25 - LMT 1898 Jun 11 16:00u + 0:00 GB-Eire %s 1940 Jul 2 + 1:00 C-Eur CE%sT 1945 May 8 + 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 + +# Slovenia +Zone Europe/Ljubljana 0:58:04 - LMT 1884 + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1982 Nov 27 + 1:00 EU CE%sT + +# Bosnia and Herzegovina +Zone Europe/Sarajevo 1:13:40 - LMT 1884 + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1982 Nov 27 + 1:00 EU CE%sT + +# Macedonia +Zone Europe/Skopje 1:25:44 - LMT 1884 + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1982 Nov 27 + 1:00 EU CE%sT + +# Moldova / Transnistria +Zone Europe/Tiraspol 1:58:32 - LMT 1880 + 1:55 - CMT 1918 Feb 15 # Chisinau MT + 1:44:24 - BMT 1931 Jul 24 # Bucharest MT + 2:00 Romania EE%sT 1940 Aug 15 + 2:00 1:00 EEST 1941 Jul 17 + 1:00 C-Eur CE%sT 1944 Aug 24 + 3:00 Russia MSK/MSD 1991 Mar 31 2:00 + 2:00 Russia EE%sT 1992 Jan 19 2:00 + 3:00 Russia MSK/MSD + +# Liechtenstein +Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun + 1:00 - CET 1981 + 1:00 EU CE%sT + +# Croatia +Zone Europe/Zagreb 1:03:52 - LMT 1884 + 1:00 - CET 1941 Apr 18 23:00 + 1:00 C-Eur CE%sT 1945 May 8 2:00s + 1:00 1:00 CEST 1945 Sep 16 2:00s + 1:00 - CET 1982 Nov 27 + 1:00 EU CE%sT + +# US minor outlying islands +Zone Pacific/Johnston -10:00 - HST -- 1.9.1