tz
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1994 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1993 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1992 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1991 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1990 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1989 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1988 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1987 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1986 -----
- December
- November
- 9 participants
- 7498 discussions
[PATCH] * time2posix.3, tzfile.5: Use ASCII double-quote only for C strings.
by Paul Eggert Aug. 13, 2014
by Paul Eggert Aug. 13, 2014
Aug. 13, 2014
---
time2posix.3 | 5 ++---
tzfile.5 | 12 ++++++------
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/time2posix.3 b/time2posix.3
index d689608..75d8097 100644
--- a/time2posix.3
+++ b/time2posix.3
@@ -28,9 +28,8 @@ time2posix, posix2time \- convert seconds since the Epoch
..
IEEE Standard 1003.1
(POSIX)
-legislates that a time_t value of
-536457599 shall correspond to "Wed Dec 31 23:59:59 UTC 1986."
-This effectively implies that POSIX time_t's cannot include leap
+requires the time_t value 536457599 to stand for 1986-12-31 23:59:59 UTC.
+This effectively implies that POSIX time_t values cannot include leap
seconds and,
therefore,
that the system time must be adjusted as each leap occurs.
diff --git a/tzfile.5 b/tzfile.5
index 182cc43..1e67a64 100644
--- a/tzfile.5
+++ b/tzfile.5
@@ -13,7 +13,7 @@ followed by a character identifying the version of the file's format
(as of 2013, either an ASCII NUL, or '2', or '3')
followed by fifteen bytes containing zeroes reserved for future use,
followed by six four-byte integer values
-written in a "standard" byte order
+written in a standard byte order
(the high-order byte of the value is written first).
These values are,
in order:
@@ -28,28 +28,28 @@ The number of standard/wall indicators stored in the file.
The number of leap seconds for which data are stored in the file.
.TP
.I tzh_timecnt
-The number of "transition times" for which data are stored
+The number of transition times for which data are stored
in the file.
.TP
.I tzh_typecnt
-The number of "local time types" for which data are stored
+The number of local time types for which data are stored
in the file (must not be zero).
.TP
.I tzh_charcnt
-The number of characters of "time zone abbreviation strings"
+The number of characters of time zone abbreviation strings
stored in the file.
.PP
The above header is followed by
.I tzh_timecnt
four-byte signed integer values sorted in ascending order.
-These values are written in "standard" byte order.
+These values are written in standard byte order.
Each is used as a transition time (as returned by
.IR time (2))
at which the rules for computing local time change.
Next come
.I tzh_timecnt
one-byte unsigned integer values;
-each one tells which of the different types of "local time" types
+each one tells which of the different types of local time types
described in the file is associated with the same-indexed transition time.
These values serve as indices into an array of
.I ttinfo
--
1.9.1
1
0
[PATCH 1/2] New data file 'backzone' for out-of-scope and/or poorly-sourced data.
by Paul Eggert Aug. 13, 2014
by Paul Eggert Aug. 13, 2014
Aug. 13, 2014
* 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(a)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
1
1
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 57649c6..d0109bb 100644
--- a/Makefile
+++ b/Makefile
@@ -624,7 +624,7 @@ 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 clean clean_misc
+.PHONY: check_time_t_alternatives check_web check_white_space clean clean_misc
.PHONY: install maintainer-clean names posix_only posix_right
.PHONY: public right_only right_posix signatures tarballs typecheck
.PHONY: zonenames zones
--
1.9.1
1
0
The TZDB has few issues after 1970 as far as I can see, but before
that date there are debates about what should be included and what
should not.
Options include
- nothing at all before 1970 (but the format demands something...)
- only data that has some reasonable source before 1970
- include data before 1970 even if its source is less than ideal
Ultimately, the problem revolves around the data format (which cannot
realistically be changed) and LMT. In the past there have been various
discussions around LMT with the conclusion that it is a bit of a silly
concept, because it refers to a single location, not a region. But we
are in the position where the format requires it, and it is widely
used (even if that use is accidental rather than deliberate).
Broadly, my position is that where data can be verified pre-1970, such
as in the UK, or my recent Angola email, it should be retained.
Commentary should be added to the data files to justify the data that
is present. Where the data cannot be verified, I am willing to take a
judgement call, provided that the judgement call is not just "we don't
know so lets link it elsewhere".
What I find objectionable is to have a named entity (zone or link)
where the LMT of the named location is replaced by the LMT of some
other location. I understand that others may not care, but it seems
flat out wrong to me (and is key to solving the pre-1970 problem).
Therefore, I'd like to propose a simple alteration to LMT.
I propose that all LMT values in the database are replaced by an new
value, representing what could be described as "averaged/smoothed
regional far past time". In real terms, this means changing all the
LMT values to an appropriate fixed value for that location. Once the
fixed value is chosen, there should be no reason not to retain it
forever.
The intention is that the fixed offset value is the most common
standard offset used by the location, favouring an offset close to the
LMT if ambiguous. The offset chosen would typically be a multiple of
15 minutes, and not contain seconds at all.
To help frame the debate, I produced a list of zones and all their
*standard* transitions (excluding DST) for 2013h;
https://gist.github.com/jodastephen/03487c61782e612db85d
Some examples:
Europe/London
-00:01:15 LMT
Z 1847-12-01
My proposal is to change the LMT value from "-00:01:15" to "Z"
America/New_York
-04:56:02
-05:00 1883-11-18
My proposal is to change the LMT value from "-04:56:02" to "-05:00"
America/Panama
-05:18:08
-05:19:36 1890-01-01
-05:00 1908-04-22
My proposal is to change the LMT value from "-05:18:08" to "-05:00".
If justification for the "-05:19:36" value cannot be found, then that
should be removed.
The net effect of this would be to provide a much more regularized
value for the far past (pre 1850 or later). In most cases, the new LMT
offset would be the same as the first non-LMT offset, resulting in the
removal of a messy transition, leaving only a name change (eg LMT to
GMT).
Advantages
- regularized far past (my experience shows that developers find the
LMT seconds offset confusing when they see it)
- increased stability, once adopted there is no reason for the LMT
value to change
- minimizes churn in the database due to "more accurate" longitude/latitude
- allows the same offset to be used even if the largest city changes in a region
- typically aligns the far past with the first "real" zone definition line
- allows multiple locations to be linked (as per recent changes)
without debate about changing any timestamps in most cases
- when multiple locations are linked, only the start of regular time
is then significant data (where known it should be retained)
Disadvantages:
- changes the meaning of LMT (the name could be possibly be changed to
FPT - far past time)
- loses existing LMT data (it could still be made available in a separate file)
- requires a one-off change
I hope that this proposal can be considered, as it would seem to
address the majority of the issues in a simple and neat way that
benefits most downstream consumers with extra regularity and
stability.
Stephen
2
5
Aug. 12, 2014
Friends,
I'd like to bring this to your attention. Discussions surrounding these
two services will be held on the tzdist mailing list. Please join that
list if you are interested.
Eliot
1
0
It allows multiple country codes per zone. Switch code and data to
use the new format, along with the recently-added Crozet Islands entry.
The old zone.tab file is still installed but is deprecated.
The new file uses UTF-8; add commentary saying that iso3166.tab is
planned to change to UTF-8.
* Theory, tzselect.8 (FILES): zone.tab -> time.tab.
* africa (Indian/Alfred_Faure): Remove link.
* antarctica: Mention Possession Island in comments.
* checktab.awk: Add support for checking time.tab.
* iso3166.tab: Mention planned switch to UTF-8.
Update ISO 3166-1 Newsletter from VI-15 to VI-16.
* time.tab: New file.
* tzselect.ksh (zonetabtype): New variable.
Add undocumented -t option, meant for developer testing.
(TZ_ZONE_TABLE): Use zonetabtype.
(output_distances, countries, regions, TZ): Support time.tab format.
(quoted_continents, distance_table, countries, regions)
(TZ, TZ_for_date): Quote shell strings more carefully.
* zone.tab: Refer to time.tab for detailed comments about format.
(Indian/Alfred_Faure): Remove.
* Makefile (TIMETABLES): New macro.
(TABDATA, install, check_tables): Use it.
(check_character_set, check_tables): Check time.tab too.
(check_time_t_alternatives): Use time.tab, not zone.tab.
* NEWS: Document the above.
---
Makefile | 20 ++--
NEWS | 15 ++-
Theory | 4 +-
africa | 3 +-
antarctica | 2 +-
checktab.awk | 58 +++++-----
iso3166.tab | 12 +-
time.tab | 371 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tzselect.8 | 4 +-
tzselect.ksh | 35 ++++--
zone.tab | 37 ++----
11 files changed, 477 insertions(+), 84 deletions(-)
create mode 100644 time.tab
diff --git a/Makefile b/Makefile
index 8de640a..68388b3 100644
--- a/Makefile
+++ b/Makefile
@@ -340,7 +340,8 @@ PRIMARY_YDATA= africa antarctica asia australasia \
YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward
NDATA= systemv factory
TDATA= $(YDATA) $(NDATA)
-TABDATA= iso3166.tab zone.tab leapseconds
+TIMETABLES= time.tab zone.tab
+TABDATA= iso3166.tab $(TIMETABLES) leapseconds
LEAP_DEPS= leapseconds.awk leap-seconds.list
DATA= $(YDATA) $(NDATA) $(TABDATA) \
$(LEAP_DEPS) yearistype.sh
@@ -364,7 +365,7 @@ install: all $(DATA) $(REDO) $(MANS)
$(DESTDIR)$(MANDIR)/man8
$(ZIC) -y $(YEARISTYPE) \
-d $(DESTDIR)$(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
- cp -f iso3166.tab zone.tab $(DESTDIR)$(TZDIR)/.
+ cp -f iso3166.tab $(TIMETABLES) $(DESTDIR)$(TZDIR)/.
cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
cp libtz.a $(DESTDIR)$(LIBDIR)/.
$(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a
@@ -455,13 +456,18 @@ check_character_set: $(ENCHILADA)
sharp='#' && \
! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) && \
- ! grep -Env $(SAFE_SHARP_LINE) $(DATA) && \
+ ! grep -Env $(SAFE_SHARP_LINE) $(YDATA) $(NDATA) iso3166.tab \
+ zone.tab leapseconds $(LEAP_DEPS) yearistype.sh && \
test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
- ! grep -Env $(NONSYM_LINE) README NEWS Theory $(MANS) date.1 && \
+ ! grep -Env $(NONSYM_LINE) README NEWS Theory $(MANS) date.1 \
+ time.tab && \
! grep -Env $(VALID_LINE) $(ENCHILADA)
-check_tables: checktab.awk $(PRIMARY_YDATA)
- $(AWK) -f checktab.awk $(PRIMARY_YDATA)
+check_tables: checktab.awk $(PRIMARY_YDATA) $(TIMETABLES)
+ for tab in $(TIMETABLES); do \
+ $(AWK) -f checktab.awk -v zone_table=$$tab $(PRIMARY_YDATA) \
+ || exit; \
+ done
check_web: $(WEB_PAGES)
$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES)
@@ -540,7 +546,7 @@ check_public: $(ENCHILADA)
# Check that the code works under various alternative
# implementations of time_t.
check_time_t_alternatives:
- zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone.tab` && \
+ zones=`$(AWK) '/^[^#]/ { print $$3 }' <time.tab` && \
for type in $(TIME_T_ALTERNATIVES); do \
mkdir -p tzpublic/$$type && \
make clean_misc && \
diff --git a/NEWS b/NEWS
index ffcbd92..babfdac 100644
--- a/NEWS
+++ b/NEWS
@@ -120,11 +120,22 @@ Unreleased, experimental changes
Europe/Riga. Also, Moscow's location has been changed to its Kilometer 0
point. (Thanks to Vladimir Karpinsky for the Moscow changes.)
- New link name
+ Changes affecting data format
- New link Indian/Alfred_Faure for the Crozet Islands and the
+ A new file 'time.tab' supersedes 'zone.tab' in the installed data.
+ The new file's extended format allows multiple country codes per zone.
+ The older file is still installed but is deprecated; its format is
+ not changing and it will still be distributed for a while, but new
+ applications should use the new file.
+
+ The new file format simplifies maintenance of obscure locations.
+ To test this, it adds coverage for the Crozet Islands and the
Scattered Islands. (Thanks to Tobias Conradi and Antoine Leca.)
+ The file 'iso3166.tab' is planned to switch from ASCII to UTF-8.
+ It is still ASCII now, but commentary about the switch has been added.
+ The new file 'time.tab' already uses UTF-8.
+
Changes affecting code
'localtime', 'mktime', etc. now use much less stack space if ALL_STATE
diff --git a/Theory b/Theory
index 05a9f65..591bba3 100644
--- a/Theory
+++ b/Theory
@@ -455,10 +455,10 @@ in decreasing order of importance:
If a name is changed, put its old spelling in the 'backward' file.
This means old spellings will continue to work.
-The file 'zone.tab' lists geographical locations used to name time
+The file 'time.tab' lists geographical locations used to name time
zone rule files. It is intended to be an exhaustive list of names
for geographic regions as described above; this is a subset of the
-names in the data. Although a 'zone.tab' location's longitude
+names in the data. Although a 'time.tab' location's longitude
corresponds to its LMT offset with one hour for every 15 degrees east
longitude, this relationship is not exact.
diff --git a/africa b/africa
index 3eef85f..3a68f88 100644
--- a/africa
+++ b/africa
@@ -978,7 +978,8 @@ Link Africa/Lagos Africa/Porto-Novo # Benin
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis
4:00 - RET # Réunion Time
-Link Indian/Reunion Indian/Alfred_Faure
+#
+# Crozet Islands also observes Réunion time; see the 'antarctica' file.
#
# Scattered Islands (Îles Éparses) administered from Réunion are as follows.
# The following information about them is taken from
diff --git a/antarctica b/antarctica
index 9e9d118..912232a 100644
--- a/antarctica
+++ b/antarctica
@@ -162,7 +162,7 @@ Zone Antarctica/Mawson 0 - zzz 1954 Feb 13
#
# French Southern Territories with year-round inhabitants
#
-# Alfred Faure, Crozet Islands, -462551+0515152, since 1964;
+# Alfred Faure, Possession Island, Crozet Islands, -462551+0515152, since 1964;
# sealing & whaling stations operated variously 1802/1911+;
# see Indian/Reunion.
#
diff --git a/checktab.awk b/checktab.awk
index 25a8d3f..ac40954 100644
--- a/checktab.awk
+++ b/checktab.awk
@@ -6,7 +6,7 @@ BEGIN {
FS = "\t"
if (!iso_table) iso_table = "iso3166.tab"
- if (!zone_table) zone_table = "zone.tab"
+ if (!zone_table) zone_table = "time.tab"
if (!want_warnings) want_warnings = -1
# A special (and we hope temporary) case.
@@ -51,7 +51,6 @@ BEGIN {
cc2NR[cc] = iso_NR
}
- zone_table = "zone.tab"
cc0 = ""
while (getline <zone_table) {
@@ -62,7 +61,8 @@ BEGIN {
zone_table, zone_NR >>"/dev/stderr"
status = 1
}
- cc = $1
+ split($1, cca, /,/)
+ cc = cca[1]
coordinates = $2
tz = $3
comments = $4
@@ -72,17 +72,20 @@ BEGIN {
status = 1
}
cc0 = cc
- cctz = cc tz
- cctztab[cctz] = 1
- tztab[tz] = 1
- tz2comments[cctz] = comments
- tz2NR[tz] = zone_NR
- if (cc2name[cc]) {
+ for (i in cca) {
+ cc = cca[i]
+ cctz = cc tz
+ cctztab[cctz] = 1
+ tztab[tz] = 1
+ tz2comments[tz] = comments
+ tz2NR[tz] = zone_NR
+ if (cc2name[cc]) {
cc_used[cc]++
- } else {
+ } else {
printf "%s:%d: %s: unknown country code\n", \
zone_table, zone_NR, cc >>"/dev/stderr"
status = 1
+ }
}
if (coordinates !~ /^[-+][0-9][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9]$/ \
&& coordinates !~ /^[-+][0-9][0-9][0-5][0-9][0-5][0-9][-+][01][0-9][0-9][0-5][0-9][0-5][0-9]$/) {
@@ -95,23 +98,26 @@ BEGIN {
for (cctz in cctztab) {
cc = substr (cctz, 1, 2)
tz = substr (cctz, 3)
- if (cc_used[cc] == 1) {
- if (tz2comments[cctz]) {
- printf "%s:%d: unnecessary comment '%s'\n", \
- zone_table, tz2NR[tz], \
- tz2comments[cctz] \
- >>"/dev/stderr"
- status = 1
- }
- } else {
- if (!tz2comments[cctz]) {
- printf "%s:%d: missing comment\n", \
- zone_table, tz2NR[tz] >>"/dev/stderr"
- status = 1
- }
+ if (1 < cc_used[cc]) {
+ comments_needed[tz] = cc
}
}
-
+ for (cctz in cctztab) {
+ cc = substr (cctz, 1, 2)
+ tz = substr (cctz, 3)
+ if (!comments_needed[tz] && tz2comments[tz]) {
+ printf "%s:%d: unnecessary comment '%s'\n", \
+ zone_table, tz2NR[tz], tz2comments[tz] \
+ >>"/dev/stderr"
+ tz2comments[tz] = 0
+ status = 1
+ } else if (comments_needed[tz] && !tz2comments[tz]) {
+ printf "%s:%d: missing comment for %s\n", \
+ zone_table, tz2NR[tz], comments_needed[tz] \
+ >>"/dev/stderr"
+ status = 1
+ }
+ }
FS = " "
}
@@ -122,7 +128,7 @@ $1 ~ /^#/ { next }
if ($1 == "Zone") {
tz = $2
ruleUsed[$4] = 1
- } else if ($1 == "Link") {
+ } else if ($1 == "Link" && zone_table == "zone.tab") {
# Ignore Link commands if source and destination basenames
# are identical, e.g. Europe/Istanbul versus Asia/Istanbul.
src = $2
diff --git a/iso3166.tab b/iso3166.tab
index 38d356d..0b0b842 100644
--- a/iso3166.tab
+++ b/iso3166.tab
@@ -3,21 +3,21 @@
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
#
-# From Paul Eggert (2013-05-27):
+# From Paul Eggert (2014-07-18):
+# This file contains a table of two-letter country codes. Columns are
+# separated by a single tab. Lines beginning with '#' are comments.
+# Although all text currently uses ASCII encoding, this is planned to
+# change to UTF-8 soon. The columns of the table are as follows:
#
-# This file contains a table with the following columns:
# 1. ISO 3166-1 alpha-2 country code, current as of
-# ISO 3166-1 Newsletter VI-15 (2013-05-10). See: Updates on ISO 3166
+# ISO 3166-1 Newsletter VI-16 (2013-07-11). See: Updates on ISO 3166
# http://www.iso.org/iso/home/standards/country_codes/updates_on_iso_3166.htm
# 2. The usual English name for the coded region,
# chosen so that alphabetic sorting of subsets produces helpful lists.
# This is not the same as the English name in the ISO 3166 tables.
#
-# Columns are separated by a single tab.
# The table is sorted by country code.
#
-# Lines beginning with '#' are comments.
-#
# This table is intended as an aid for users, to help them select time
# zone data appropriate for their practical needs. It is not intended
# to take or endorse any position on legal or territorial claims.
diff --git a/time.tab b/time.tab
new file mode 100644
index 0000000..74ca92c
--- /dev/null
+++ b/time.tab
@@ -0,0 +1,371 @@
+# tz zone descriptions
+#
+# This file is in the public domain.
+#
+# From Paul Eggert (2014-07-18):
+# This file contains a table where each row stands for a zone where
+# civil time stamps have agreed since 1970. Columns are separated by
+# a single tab. Lines beginning with '#' are comments. All text uses
+# UTF-8 encoding. The columns of the table are as follows:
+#
+# 1. The countries that overlap the zone, as a comma-separated list
+# of ISO 3166 2-character country codes. See the file 'iso3166.tab'.
+# 2. Latitude and longitude of the zone's principal location
+# in ISO 6709 sign-degrees-minutes-seconds format,
+# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
+# first latitude (+ is north), then longitude (+ is east).
+# 3. Zone name used in value of TZ environment variable.
+# Please see the 'Theory' file for how zone names are chosen.
+# If multiple zones overlap a country, each has a row in the
+# table, with each column 1 containing the country code.
+# 4. Comments; present if and only if a country has multiple zones.
+#
+# If a zone covers multiple countries, the most-populous city is used,
+# and that country is listed first in column 1; any other countries
+# are listed alphabetically by country code. The table is sorted
+# first by country code, then (if possible) by an order within the
+# country that (1) makes some geographical sense, and (2) puts the
+# most populous zones first, where that does not contradict (1).
+#
+# This table is intended as an aid for users, to help them select time
+# zone data appropriate for their practical needs. It is not intended
+# to take or endorse any position on legal or territorial claims.
+#
+#country-
+#codes coordinates TZ comments
+AD +4230+00131 Europe/Andorra
+AE,OM +2518+05518 Asia/Dubai
+AF +3431+06912 Asia/Kabul
+AL +4120+01950 Europe/Tirane
+AM +4011+04430 Asia/Yerevan
+AQ -6734-06808 Antarctica/Rothera Rothera Station, Adelaide Island
+AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island
+AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay
+AQ -6835+07758 Antarctica/Davis Davis Station, Vestfold Hills
+AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula
+AQ -7824+10654 Antarctica/Vostok Vostok Station, Lake Vostok
+AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie
+AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I
+AQ -720041+0023206 Antarctica/Troll Troll Station, Queen Maud Land
+AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
+AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF)
+AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN)
+AR -2411-06518 America/Argentina/Jujuy Jujuy (JY)
+AR -2649-06513 America/Argentina/Tucuman Tucumán (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)
+AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ)
+AR -3319-06621 America/Argentina/San_Luis San Luis (SL)
+AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC)
+AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF)
+AS,UM -1416-17042 Pacific/Pago_Pago Samoa, Midway
+AT +4813+01620 Europe/Vienna
+AU -3133+15905 Australia/Lord_Howe Lord Howe Island
+AU -5430+15857 Antarctica/Macquarie Macquarie Island
+AU -4253+14719 Australia/Hobart Tasmania - most locations
+AU -3956+14352 Australia/Currie Tasmania - King Island
+AU -3749+14458 Australia/Melbourne Victoria
+AU -3352+15113 Australia/Sydney New South Wales - most locations
+AU -3157+14127 Australia/Broken_Hill New South Wales - Yancowinna
+AU -2728+15302 Australia/Brisbane Queensland - most locations
+AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands
+AU -3455+13835 Australia/Adelaide South Australia
+AU -1228+13050 Australia/Darwin Northern Territory
+AU -3157+11551 Australia/Perth Western Australia - most locations
+AU -3143+12852 Australia/Eucla Western Australia - Eucla area
+AZ +4023+04951 Asia/Baku
+BB +1306-05937 America/Barbados
+BD +2343+09025 Asia/Dhaka
+BE +5050+00420 Europe/Brussels
+BG +4241+02319 Europe/Sofia
+BM +3217-06446 Atlantic/Bermuda
+BN +0456+11455 Asia/Brunei
+BO -1630-06809 America/La_Paz
+BR -0351-03225 America/Noronha Atlantic islands
+BR -0127-04829 America/Belem Amapá, E Pará
+BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB)
+BR -0803-03454 America/Recife Pernambuco
+BR -0712-04812 America/Araguaina Tocantins
+BR -0940-03543 America/Maceio Alagoas, Sergipe
+BR -1259-03831 America/Bahia Bahia
+BR -2332-04637 America/Sao_Paulo S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)
+BR -2027-05437 America/Campo_Grande Mato Grosso do Sul
+BR -1535-05605 America/Cuiaba Mato Grosso
+BR -0226-05452 America/Santarem W Pará
+BR -0846-06354 America/Porto_Velho Rondônia
+BR +0249-06040 America/Boa_Vista Roraima
+BR -0308-06001 America/Manaus E Amazonas
+BR -0640-06952 America/Eirunepe W Amazonas
+BR -0958-06748 America/Rio_Branco Acre
+BS +2505-07721 America/Nassau
+BT +2728+08939 Asia/Thimphu
+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 +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 +4339-07923 America/Toronto Eastern Time - Ontario & Quebec - 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 +6344-06828 America/Iqaluit Eastern Time - east Nunavut - most locations
+CA +6608-06544 America/Pangnirtung Eastern Time - Pangnirtung, Nunavut
+CA +744144-0944945 America/Resolute Central Time - Resolute, Nunavut
+CA +484531-0913718 America/Atikokan Eastern Standard Time - Atikokan, Ontario and Southampton I, Nunavut
+CA +624900-0920459 America/Rankin_Inlet Central Time - central Nunavut
+CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario
+CA +4843-09434 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario
+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 +690650-1050310 America/Cambridge_Bay Mountain Time - west Nunavut
+CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories
+CA +682059-1334300 America/Inuvik Mountain Time - west Northwest Territories
+CA +4906-11631 America/Creston Mountain Standard Time - Creston, British Columbia
+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
+CA +6404-13925 America/Dawson Pacific Time - north Yukon
+CC -1210+09655 Indian/Cocos
+CH,DE,LI +4723+00832 Europe/Zurich Swiss time
+CI,BF,GM,GN,ML,MR,SH,SL,SN,ST,TG +0519-00402 Africa/Abidjan
+CK -2114-15946 Pacific/Rarotonga
+CL -3327-07040 America/Santiago most locations
+CL -2709-10926 Pacific/Easter Easter Island
+CN +3114+12128 Asia/Shanghai Beijing Time
+CN +4348+08735 Asia/Urumqi Xinjiang Time
+CO +0436-07405 America/Bogota
+CR +0956-08405 America/Costa_Rica
+CU +2308-08222 America/Havana
+CV +1455-02331 Atlantic/Cape_Verde
+CW,AW,BQ,SX +1211-06900 America/Curacao
+CX -1025+10543 Indian/Christmas
+CY +3510+03322 Asia/Nicosia
+CZ,SK +5005+01426 Europe/Prague
+DE +5230+01322 Europe/Berlin Berlin time
+DK +5540+01235 Europe/Copenhagen
+DO +1828-06954 America/Santo_Domingo
+DZ +3647+00303 Africa/Algiers
+EC -0210-07950 America/Guayaquil mainland
+EC -0054-08936 Pacific/Galapagos Galápagos Islands
+EE +5925+02445 Europe/Tallinn
+EG +3003+03115 Africa/Cairo
+EH +2709-01312 Africa/El_Aaiun
+ES +4024-00341 Europe/Madrid mainland
+ES +3553-00519 Africa/Ceuta Ceuta & Melilla
+ES +2806-01524 Atlantic/Canary Canary Islands
+FI,AX +6010+02458 Europe/Helsinki
+FJ -1808+17825 Pacific/Fiji
+FK -5142-05751 Atlantic/Stanley
+FM +0725+15147 Pacific/Chuuk Chuuk (Truk) and Yap
+FM +0658+15813 Pacific/Pohnpei Pohnpei (Ponape)
+FM +0519+16259 Pacific/Kosrae Kosrae
+FO +6201-00646 Atlantic/Faroe
+FR +4852+00220 Europe/Paris
+GB,GG,IM,JE +513030-0000731 Europe/London
+GE +4143+04449 Asia/Tbilisi
+GF +0456-05220 America/Cayenne
+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 +7634-06847 America/Thule Thule / Pituffik
+GR +3758+02343 Europe/Athens
+GS -5416-03632 Atlantic/South_Georgia
+GT +1438-09031 America/Guatemala
+GU,MP +1328+14445 Pacific/Guam
+GW +1151-01535 Africa/Bissau
+GY +0648-05810 America/Guyana
+HK +2217+11409 Asia/Hong_Kong
+HN +1406-08713 America/Tegucigalpa
+HT +1832-07220 America/Port-au-Prince
+HU +4730+01905 Europe/Budapest
+ID -0610+10648 Asia/Jakarta Java & Sumatra
+ID -0002+10920 Asia/Pontianak west & central Borneo
+ID -0507+11924 Asia/Makassar east & south Borneo, Sulawesi (Celebes), Bali, Nusa Tengarra, west Timor
+ID -0232+14042 Asia/Jayapura west New Guinea (Irian Jaya) & Malukus (Moluccas)
+IE +5320-00615 Europe/Dublin
+IL +314650+0351326 Asia/Jerusalem
+IN +2232+08822 Asia/Kolkata
+IO -0720+07225 Indian/Chagos
+IQ +3321+04425 Asia/Baghdad
+IR +3540+05126 Asia/Tehran
+IS +6409-02151 Atlantic/Reykjavik
+IT,SM,VA +4154+01229 Europe/Rome
+JM +175805-0764736 America/Jamaica
+JO +3157+03556 Asia/Amman
+JP +353916+1394441 Asia/Tokyo
+KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
+KG +4254+07436 Asia/Bishkek
+KI +0125+17300 Pacific/Tarawa Gilbert Islands
+KI -0308-17105 Pacific/Enderbury Phoenix Islands
+KI +0152-15720 Pacific/Kiritimati Line Islands
+KP +3901+12545 Asia/Pyongyang
+KR +3733+12658 Asia/Seoul
+KZ +4315+07657 Asia/Almaty most locations
+KZ +4448+06528 Asia/Qyzylorda Qyzylorda (Kyzylorda, Kzyl-Orda)
+KZ +5017+05710 Asia/Aqtobe Aqtobe (Aktobe)
+KZ +4431+05016 Asia/Aqtau Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau)
+KZ +5113+05121 Asia/Oral West Kazakhstan
+LB +3353+03530 Asia/Beirut
+LK +0656+07951 Asia/Colombo
+LR +0618-01047 Africa/Monrovia
+LT +5441+02519 Europe/Vilnius
+LU +4936+00609 Europe/Luxembourg
+LV +5657+02406 Europe/Riga
+LY +3254+01311 Africa/Tripoli
+MA +3339-00735 Africa/Casablanca
+MC +4342+00723 Europe/Monaco
+MD +4700+02850 Europe/Chisinau
+MH +0709+17112 Pacific/Majuro most locations
+MH +0905+16720 Pacific/Kwajalein Kwajalein
+MM +1647+09610 Asia/Rangoon
+MN +4755+10653 Asia/Ulaanbaatar most locations
+MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan
+MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar
+MO +2214+11335 Asia/Macau
+MQ +1436-06105 America/Martinique
+MT +3554+01431 Europe/Malta
+MU -2010+05730 Indian/Mauritius
+MV +0410+07330 Indian/Maldives
+MX +1924-09909 America/Mexico_City Central Time - most locations
+MX +2105-08646 America/Cancun Central Time - Quintana Roo
+MX +2058-08937 America/Merida Central Time - Campeche, Yucatán
+MX +2540-10019 America/Monterrey Mexican Central Time - Coahuila, Durango, Nuevo León, Tamaulipas away from US border
+MX +2550-09730 America/Matamoros US Central Time - Coahuila, Durango, Nuevo León, Tamaulipas near US border
+MX +2313-10625 America/Mazatlan Mountain Time - S Baja, Nayarit, Sinaloa
+MX +2838-10605 America/Chihuahua Mexican Mountain Time - Chihuahua away from US border
+MX +2934-10425 America/Ojinaga US Mountain Time - Chihuahua near US border
+MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora
+MX +3232-11701 America/Tijuana US Pacific Time - Baja California near US border
+MX +3018-11452 America/Santa_Isabel Mexican Pacific Time - Baja California away from US border
+MX +2048-10515 America/Bahia_Banderas Mexican Central Time - BahÃa de Banderas
+MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia
+MY +0133+11020 Asia/Kuching Sabah & Sarawak
+MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time (UTC+2)
+NA -2234+01706 Africa/Windhoek
+NC -2216+16627 Pacific/Noumea
+NF -2903+16758 Pacific/Norfolk
+NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time (UTC+1)
+NI +1209-08617 America/Managua
+NL +5222+00454 Europe/Amsterdam
+NO,SJ +5955+01045 Europe/Oslo
+NP +2743+08519 Asia/Kathmandu
+NR -0031+16655 Pacific/Nauru
+NU -1901-16955 Pacific/Niue
+NZ,AQ -3652+17446 Pacific/Auckland New Zealand time
+NZ -4357-17633 Pacific/Chatham Chatham Islands
+PA,KY +0858-07932 America/Panama
+PE -1203-07703 America/Lima
+PF -1732-14934 Pacific/Tahiti Society Islands
+PF -0900-13930 Pacific/Marquesas Marquesas Islands
+PF -2308-13457 Pacific/Gambier Gambier Islands
+PG -0930+14710 Pacific/Port_Moresby
+PH +1435+12100 Asia/Manila
+PK +2452+06703 Asia/Karachi
+PL +5215+02100 Europe/Warsaw
+PM +4703-05620 America/Miquelon
+PN -2504-13005 Pacific/Pitcairn
+PR +182806-0660622 America/Puerto_Rico
+PS +3130+03428 Asia/Gaza Gaza Strip
+PS +313200+0350542 Asia/Hebron West Bank
+PT +3843-00908 Europe/Lisbon mainland
+PT +3238-01654 Atlantic/Madeira Madeira Islands
+PT +3744-02540 Atlantic/Azores Azores
+PW +0720+13429 Pacific/Palau
+PY -2516-05740 America/Asuncion
+QA,BH +2517+05132 Asia/Qatar
+RE,TF -2052+05528 Indian/Reunion Réunion, Crozet Is, Scattered Is
+RO +4426+02606 Europe/Bucharest
+RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade
+RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad
+RU +554521+0373704 Europe/Moscow Moscow+00 - west Russia
+RU +4457+03406 Europe/Simferopol Moscow+00 - Crimea
+RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea
+RU +5312+05009 Europe/Samara Moscow+00 (Moscow+01 after 2014-10-26) - Samara, Udmurtia
+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
+RU +5345+08707 Asia/Novokuznetsk Moscow+03 (Moscow+04 after 2014-10-26) - Kemerovo
+RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River
+RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal
+# Add this once the 2014-10-26 Russian change becomes official:
+#RU +5203+11328 Asia/Chita Moscow+06 (Moscow+05 after 2014-10-26) - Zabaykalsky
+RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River
+RU +623923+1353314 Asia/Khandyga Moscow+06 - Tomponsky, Ust-Maysky
+RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River
+RU +4658+14242 Asia/Sakhalin Moscow+07 - Sakhalin Island
+RU +643337+1431336 Asia/Ust-Nera Moscow+07 - Oymyakonsky
+RU +5934+15048 Asia/Magadan Moscow+08 (Moscow+07 after 2014-10-26) - Magadan
+# Add this once the 2014-10-26 Russian change becomes official:
+#RU +6728+15343 Asia/Srednekolymsk Moscow+08 - E Sakha, N Kuril Is
+RU +5301+15839 Asia/Kamchatka Moscow+08 (Moscow+09 after 2014-10-26) - Kamchatka
+RU +6445+17729 Asia/Anadyr Moscow+08 (Moscow+09 after 2014-10-26) - Bering Sea
+SA,KW,YE +2438+04643 Asia/Riyadh
+SB -0932+16012 Pacific/Guadalcanal
+SC -0440+05528 Indian/Mahe
+SD,SS +1536+03232 Africa/Khartoum
+SE +5920+01803 Europe/Stockholm
+SG +0117+10351 Asia/Singapore
+SR +0550-05510 America/Paramaribo
+SV +1342-08912 America/El_Salvador
+SY +3330+03618 Asia/Damascus
+TC +2128-07108 America/Grand_Turk
+TD +1207+01503 Africa/Ndjamena
+TF -492110+0701303 Indian/Kerguelen Kerguelen, St Paul I, Amsterdam I
+TH,KH,LA,VN +1345+10031 Asia/Bangkok
+TJ +3835+06848 Asia/Dushanbe
+TK -0922-17114 Pacific/Fakaofo
+TL -0833+12535 Asia/Dili
+TM +3757+05823 Asia/Ashgabat
+TN +3648+01011 Africa/Tunis
+TO -2110-17510 Pacific/Tongatapu
+TR +4101+02858 Europe/Istanbul
+TT,AG,AI,BL,DM,GD,GP,MF,LC,KN,MS,VC,VG,VI +1039-06131 America/Port_of_Spain
+TV -0831+17913 Pacific/Funafuti
+TW +2503+12130 Asia/Taipei
+UA +5026+03031 Europe/Kiev most locations
+UA +4837+02218 Europe/Uzhgorod Ruthenia
+UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk
+UM +1917+16637 Pacific/Wake Wake Island
+US +404251-0740023 America/New_York Eastern Time
+US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations
+US +381515-0854534 America/Kentucky/Louisville Eastern Time - Kentucky - Louisville area
+US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County
+US +394606-0860929 America/Indiana/Indianapolis Eastern Time - Indiana - most locations
+US +384038-0873143 America/Indiana/Vincennes Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
+US +410305-0863611 America/Indiana/Winamac Eastern Time - Indiana - Pulaski County
+US +382232-0862041 America/Indiana/Marengo Eastern Time - Indiana - Crawford County
+US +382931-0871643 America/Indiana/Petersburg Eastern Time - Indiana - Pike County
+US +384452-0850402 America/Indiana/Vevay Eastern Time - Indiana - Switzerland County
+US +415100-0873900 America/Chicago Central Time
+US +375711-0864541 America/Indiana/Tell_City Central Time - Indiana - Perry County
+US +411745-0863730 America/Indiana/Knox Central Time - Indiana - Starke 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 +471551-1014640 America/North_Dakota/Beulah Central Time - North Dakota - Mercer County
+US +394421-1045903 America/Denver Mountain Time
+US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon
+US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona (except Navajo)
+US +340308-1181434 America/Los_Angeles Pacific Time
+US +550737-1313435 America/Metlakatla Pacific Standard Time - Annette Island, Alaska
+US +611305-1495401 America/Anchorage Alaska Time
+US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle
+US +571035-1351807 America/Sitka Alaska Time - southeast Alaska panhandle
+US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck
+US +643004-1652423 America/Nome Alaska Time - west Alaska
+US +515248-1763929 America/Adak Aleutian Islands
+US,UM +211825-1575130 Pacific/Honolulu Hawaii time
+UY -3453-05611 America/Montevideo
+UZ +3940+06648 Asia/Samarkand west Uzbekistan
+UZ +4120+06918 Asia/Tashkent east Uzbekistan
+VE +1030-06656 America/Caracas
+VU -1740+16825 Pacific/Efate
+WF -1318-17610 Pacific/Wallis
+WS -1350-17144 Pacific/Apia
+ZA,LS,SZ -2615+02800 Africa/Johannesburg
diff --git a/tzselect.8 b/tzselect.8
index 7644112..30375a5 100644
--- a/tzselect.8
+++ b/tzselect.8
@@ -99,8 +99,8 @@ Name of the directory containing time zone data files (default:
\f2TZDIR\fP\f3/iso3166.tab\fP
Table of ISO 3166 2-letter country codes and country names.
.TP
-\f2TZDIR\fP\f3/zone.tab\fP
-Tables of country codes, latitude and longitude, zone names, and
+\f2TZDIR\fP\f3/time.tab\fP
+Table of country codes, latitude and longitude, zone names, and
descriptive comments.
.TP
\f2TZDIR\fP\f3/\fP\f2TZ\fP
diff --git a/tzselect.ksh b/tzselect.ksh
index 963001a..e799a1a 100644
--- a/tzselect.ksh
+++ b/tzselect.ksh
@@ -46,6 +46,7 @@ REPORT_BUGS_TO=tz(a)iana.org
coord=
location_limit=10
+zonetabtype=time
usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT]
Select a time zone interactively.
@@ -146,6 +147,8 @@ do
coord=$OPTARG ;;
n*)
location_limit=$OPTARG ;;
+ t*) # Undocumented option, used for developer testing.
+ zonetabtype=$OPTARG ;;
-help)
exec echo "$usage" ;;
-version)
@@ -165,10 +168,10 @@ esac
# Make sure the tables are readable.
TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab
-TZ_ZONE_TABLE=$TZDIR/zone.tab
+TZ_ZONE_TABLE=$TZDIR/$zonetabtype.tab
for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE
do
- <$f || {
+ <"$f" || {
echo >&2 "$0: time zone files are not set up correctly"
exit 1
}
@@ -232,7 +235,13 @@ output_distances='
/^[^#]/ {
here_lat = convert_latitude($2)
here_long = convert_longitude($2)
- line = $1 "\t" $2 "\t" $3 "\t" country[$1]
+ line = $1 "\t" $2 "\t" $3
+ sep = "\t"
+ ncc = split($1, cc, /,/)
+ for (i = 1; i <= ncc; i++) {
+ line = line sep country[cc[i]]
+ sep = ", "
+ }
if (NF == 4)
line = line " - " $4
printf "%g\t%s\n", dist(coord_lat, coord_long, here_lat, here_long), line
@@ -269,7 +278,7 @@ while
entry = entry " Ocean"
printf "'\''%s'\''\n", entry
}
- ' $TZ_ZONE_TABLE |
+ ' <"$TZ_ZONE_TABLE" |
sort -u |
tr '\n' ' '
echo ''
@@ -327,7 +336,7 @@ while
distance_table=`$AWK \
-v coord="$coord" \
-v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
- "$output_distances" <$TZ_ZONE_TABLE |
+ "$output_distances" <"$TZ_ZONE_TABLE" |
sort -n |
sed "${location_limit}q"
`
@@ -355,7 +364,9 @@ while
BEGIN { FS = "\t" }
/^#/ { next }
$3 ~ ("^" continent "/") {
- if (!cc_seen[$1]++) cc_list[++ccs] = $1
+ ncc = split($1, cc, /,/)
+ for (i = 1; i <= ncc; i++)
+ if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i]
}
END {
while (getline <TZ_COUNTRY_TABLE) {
@@ -369,7 +380,7 @@ while
print country
}
}
- ' <$TZ_ZONE_TABLE | sort -f`
+ ' <"$TZ_ZONE_TABLE" | sort -f`
# If there's more than one country, ask the user which one.
@@ -399,8 +410,8 @@ while
}
}
}
- $1 == cc { print $4 }
- ' <$TZ_ZONE_TABLE`
+ $1 ~ cc { print $4 }
+ ' <"$TZ_ZONE_TABLE"`
# If there's more than one region, ask the user which one.
@@ -430,13 +441,13 @@ while
}
}
}
- $1 == cc && $4 == region { print $3 }
- ' <$TZ_ZONE_TABLE`
+ $1 ~ cc && $4 == region { print $3 }
+ ' <"$TZ_ZONE_TABLE"`
esac
# Make sure the corresponding zoneinfo file exists.
TZ_for_date=$TZDIR/$TZ
- <$TZ_for_date || {
+ <"$TZ_for_date" || {
echo >&2 "$0: time zone files are not set up correctly"
exit 1
}
diff --git a/zone.tab b/zone.tab
index 2ca3cbc..dfc5703 100644
--- a/zone.tab
+++ b/zone.tab
@@ -1,32 +1,20 @@
-# TZ zone descriptions
+# tz zone descriptions (deprecated version)
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
#
-# From Paul Eggert (2013-08-14):
+# From Paul Eggert (2014-07-18):
+# This file is intended as a backward-compatibility aid for older programs.
+# New programs should use time.tab. This file is like time.tab (see
+# time.tab's comments), but with the following additional restrictions:
#
-# This file contains a table where each row stands for an area that is
-# the intersection of a region identified by a country code and of a
-# zone where civil clocks have agreed since 1970. The columns of the
-# table are as follows:
+# 1. This file contains only ASCII characters.
+# 2. The first data column contains exactly one country code.
#
-# 1. ISO 3166 2-character country code. See the file 'iso3166.tab'.
-# 2. Latitude and longitude of the area's principal location
-# in ISO 6709 sign-degrees-minutes-seconds format,
-# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
-# first latitude (+ is north), then longitude (+ is east).
-# 3. Zone name used in value of TZ environment variable.
-# Please see the 'Theory' file for how zone names are chosen.
-# If multiple zones overlap a country, each has a row in the
-# table, with column 1 being duplicated.
-# 4. Comments; present if and only if the country has multiple rows.
-#
-# Columns are separated by a single tab.
-# The table is sorted first by country, then an order within the country that
-# (1) makes some geographical sense, and
-# (2) puts the most populous areas first, where that does not contradict (1).
-#
-# Lines beginning with '#' are comments.
+# Because of (2), each row stands for an area that is the intersection
+# of a region identified by a country code and of a zone where civil
+# clocks have agreed since 1970; this is a narrower definition than
+# that of time.tab.
#
# This table is intended as an aid for users, to help them select time
# zone data appropriate for their practical needs. It is not intended
@@ -384,8 +372,7 @@ SY +3330+03618 Asia/Damascus
SZ -2618+03106 Africa/Mbabane
TC +2128-07108 America/Grand_Turk
TD +1207+01503 Africa/Ndjamena
-TF -492110+0701303 Indian/Kerguelen Kerguelen, St Paul I, Amsterdam I
-TF -462551+0515125 Indian/Alfred_Faure Crozet Is, Scattered Is
+TF -492110+0701303 Indian/Kerguelen
TG +0608+00113 Africa/Lome
TH +1345+10031 Asia/Bangkok
TJ +3835+06848 Asia/Dushanbe
--
1.9.1
6
12
Please find attached a patch which contains more specific information about
time zone support in Microsoft Windows.
In particular, I'm correcting the previous information which stated that the
Windows time zone format was undocumented. I've provided links to all of the
relevant documentation.
I've also clarified the use of TZ data in the new Windows Runtime APIs. The
previous text made it sound like DateTimeFormatter can perform CLDR
conversions, which it cannot.
Please let me know if there are any suggested revisions.
Thanks,
Matt
2
3
Have brought my tzdata clone up to date, and re-merged the new data.
http://hg.lsces.org.uk/hg/tzdata/rev/c8017bbdb194
In the process of checking things, I found a few broken links in the
europe file
http://hg.lsces.org.uk/hg/tz/rev/f998f498222b
Have several extra links to go with Joseph's UK details as well ...
A lot of the material has now been scanned and is on-line.
--
Lester Caine - G8HFL
-----------------------------
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk
Rainbow Digital Media - http://rainbowdigitalmedia.co.uk
2
1
This harmless bug was introduced in release 2014f, which distributed
leapseconds.awk in both the code and the data tarballs.
It's code, so it should be in the code tarball.
* Makefile (DATA): Omit leapseconds.awk.
(check_character_set): Omit redundant check of $(LEAP_DEPS).
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index ee02f73..03ee556 100644
--- a/Makefile
+++ b/Makefile
@@ -344,7 +344,7 @@ ZONETABLES= zone1970.tab zone.tab
TABDATA= iso3166.tab leapseconds $(ZONETABLES)
LEAP_DEPS= leapseconds.awk leap-seconds.list
DATA= $(YDATA) $(NDATA) $(TABDATA) \
- $(LEAP_DEPS) yearistype.sh
+ leap-seconds.list yearistype.sh
AWK_SCRIPTS= checktab.awk leapseconds.awk
MISC= $(AWK_SCRIPTS) workman.sh zoneinfo2tdf.pl
ENCHILADA= $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC)
@@ -457,7 +457,7 @@ check_character_set: $(ENCHILADA)
! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) && \
! grep -Env $(SAFE_SHARP_LINE) $(YDATA) $(NDATA) iso3166.tab \
- zone.tab leapseconds $(LEAP_DEPS) yearistype.sh && \
+ zone.tab leapseconds yearistype.sh && \
test $$(grep -Ecv $(SAFE_SHARP_LINE) Makefile) -eq 1 && \
! grep -Env $(NONSYM_LINE) README NEWS Theory $(MANS) date.1 \
zone1970.tab && \
--
1.9.1
2
2
In particular, this patch is makes the commentary more systematic
about preferring "time zone" to "timezone" except when quoting someone
else or when talking about code that uses "timezone".
---
NEWS | 10 +++++-----
README | 6 +++---
Theory | 6 +++---
africa | 2 +-
asia | 2 +-
australasia | 2 +-
leapseconds.awk | 2 +-
newctime.3 | 2 +-
northamerica | 8 ++++----
southamerica | 12 ++++++------
tz-link.htm | 9 ++++-----
zic.8 | 2 +-
12 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/NEWS b/NEWS
index e7bafe8..30924d1 100644
--- a/NEWS
+++ b/NEWS
@@ -184,7 +184,7 @@ Release 2014f - 2014-08-05 17:42:36 -0700
are not already surrounded by white space. (Thanks to suggestions by
Steffen Nurpmeso.)
- There is new commentary about Xujiahui Observatory, the five timezone
+ There is new commentary about Xujiahui Observatory, the five time-zone
project in China from 1918 to 1949, timekeeping in Japanese-occupied
Shanghai, and Tibet Time in the 1950s. The sharp-eyed can spot the
warlord Jin Shuren in the data.
@@ -479,7 +479,7 @@ Release 2013h - 2013-10-25 15:32:32 -0700
Changes affecting documentation and commentary
- tz-link.htm now mentions TC TIMEZONE's draft timezone service protocol
+ tz-link.htm now mentions TC TIMEZONE's draft time zone service protocol
(thanks to Mike Douglass) and TimezoneJS.Date (thanks to Jim Fehrle).
Update URLs in tz-link page. Add URLs for Microsoft Windows, since
@@ -679,7 +679,7 @@ Release 2013e - 2013-09-19 23:50:04 -0700
The signatures of 'offtime', 'timeoff', and 'gtime' have been
changed back to the old practice of using 'long' to represent UT
offsets. This had been inadvertently and mistakenly changed to
- 'int_fast32_t'. (Thanks to Christos Zoulos.)
+ 'int_fast32_t'. (Thanks to Christos Zoulas.)
The code avoids undefined behavior on integer overflow in some
more places, including gmtime, localtime, mktime and zdump.
@@ -1110,7 +1110,7 @@ Release 2012a - 2012-03-01 18:28:10 +0700
Other minor changes are:
Corrections to 1918 Canadian summer time end dates.
- Updated URL for UK timezone history (in comments)
+ Updated URL for UK time zone history (in comments)
A few typos in Le Corre's list of free French place names (comments)
@@ -2668,7 +2668,7 @@ numbers.
Release time stamps are taken from the release's commit (for newer,
git releases), from the newest file in the tarball (for older
releases, where this info is available) or from the email announcing
-the release (if all else fails; these are marked with a timezone of
+the release (if all else fails; these are marked with a time zone of
-0000 and an "is missing!" comment).
Earlier versions of the code and data were not announced on the tz
diff --git a/README b/README
index 0b0bbbe..a6796d7 100644
--- a/README
+++ b/README
@@ -50,13 +50,13 @@ If you know that the rules are different from those in a file, by all means
feel free to change a file (and please send the changed version to
tz(a)iana.org for use in the future). Europeans take note!
-Thanks to these Timezone Caballeros who've made major contributions to the
-time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz;
+Thanks to these Time Zone Caballeros who've made major contributions to the
+time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz;
Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to
Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales
for testing work, and to Gwillim Law for checking local mean time data.
Thanks in particular to Arthur David Olson, the project's founder and first
-maintainer, to whom the timezone community owes the greatest debt of all.
+maintainer, to whom the time zone community owes the greatest debt of all.
None of them are responsible for remaining errors.
Look in <ftp://ftp.iana.org/tz/releases/> for updated versions of these files.
diff --git a/Theory b/Theory
index d23dac3..42070e4 100644
--- a/Theory
+++ b/Theory
@@ -127,7 +127,7 @@ These are the extensions that have been made to the POSIX functions:
consideration was given to using some other environment variable
(for example, "TIMEZONE") to hold the string used to generate the
time zone information file name. In the end, however, it was decided
- to continue using "TZ": it is widely used for time zone purposes;
+ to continue using "TZ": it is widely used for time zone purposes;
separately maintaining both "TZ" and "TIMEZONE" seemed a nuisance;
and systems where "new" forms of "TZ" might cause problems can simply
use TZ values such as "EST5EDT" which can be used both by
@@ -710,9 +710,9 @@ Gregorian calendar:
The Russian empire (including Finland and the Baltic states) did not
convert to the Gregorian calendar until the Soviet revolution of 1917.
-Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen
+Source: H. Grotefend, _Taschenbuch der Zeitrechnung des deutschen
Mittelalters und der Neuzeit_, herausgegeben von Dr. O. Grotefend
-(Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28.
+(Hannover: Hahnsche Buchhandlung, 1941), pp. 26-28.
----- Time and time zones on Mars -----
diff --git a/africa b/africa
index 339d6c4..9f819f7 100644
--- a/africa
+++ b/africa
@@ -606,7 +606,7 @@ Zone Africa/Blantyre 2:20:00 - LMT 1903 Mar
# From Alex Krivenyshev (2008-07-11):
# Seems that English language article "The revival of daylight saving
-# time: Energy conservation?"-# No. 16578 (07/11/2008) was originally
+# time: Energy conservation?"-# No. 16578 (07/11/2008) was originally
# published on Monday, June 30, 2008...
#
# I guess that article in French "Le gouvernement avance l'introduction
diff --git a/asia b/asia
index 2536f72..09aaa24 100644
--- a/asia
+++ b/asia
@@ -1915,7 +1915,7 @@ Zone Asia/Hovd 6:06:36 - LMT 1905 Aug
Zone Asia/Ulaanbaatar 7:07:32 - LMT 1905 Aug
7:00 - ULAT 1978 # Ulaanbaatar Time
8:00 Mongol ULA%sT
-# Choibalsan, a.k.a. Bajan Tuemen, Bajan Tumen, Chojbalsan,
+# Choibalsan, a.k.a. Bajan Tümen, Bajan Tumen, Chojbalsan,
# Choybalsan, Sanbejse, Tchoibalsan
Zone Asia/Choibalsan 7:38:00 - LMT 1905 Aug
7:00 - ULAT 1978
diff --git a/australasia b/australasia
index 4911e8d..2ee4cbe 100644
--- a/australasia
+++ b/australasia
@@ -717,7 +717,7 @@ Zone Pacific/Funafuti 11:56:52 - LMT 1901
# From Mark Brader (2005-01-23):
# [Fallacies and Fantasies of Air Transport History, by R.E.G. Davies,
# published 1994 by Paladwr Press, McLean, VA, USA; ISBN 0-9626483-5-3]
-# reproduced a Pan American Airways timeables from 1936, for their weekly
+# reproduced a Pan American Airways timetable from 1936, for their weekly
# "Orient Express" flights between San Francisco and Manila, and connecting
# flights to Chicago and the US East Coast. As it uses some time zone
# designations that I've never seen before:....
diff --git a/leapseconds.awk b/leapseconds.awk
index 739615a..c2079dc 100644
--- a/leapseconds.awk
+++ b/leapseconds.awk
@@ -3,7 +3,7 @@
# This file is in the public domain.
BEGIN {
- print "# Allowance for leapseconds added to each timezone file."
+ print "# Allowance for leap seconds added to each time zone file."
print ""
print "# This file is in the public domain."
print ""
diff --git a/newctime.3 b/newctime.3
index 2e1d937..dccab77 100644
--- a/newctime.3
+++ b/newctime.3
@@ -189,7 +189,7 @@ includes the following fields:
int tm_wday; /\(** day of week (Sunday = 0) \(**/
int tm_yday; /\(** day of year (0\*(en365) \(**/
int tm_isdst; /\(** is summer time in effect? \(**/
- char \(**tm_zone; /\(** abbreviation of timezone name \(**/
+ char \(**tm_zone; /\(** abbreviation of time zone name \(**/
long tm_gmtoff; /\(** offset from UT in seconds \(**/
.fi
.RE
diff --git a/northamerica b/northamerica
index 7074d31..9a306b8 100644
--- a/northamerica
+++ b/northamerica
@@ -545,7 +545,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
# Minutes of the Unalaska City Council Meeting, January 10, 1967:
# "Except for St. Paul and Akutan, Unalaska is the only important
# location not on Alaska Standard Time. The following resolution was
-# made by William Robinson and seconded by Henry Swanson: Be it
+# made by William Robinson and seconded by Henry Swanson: Be it
# resolved that the City of Unalaska hereby goes to Alaska Standard
# Time as of midnight Friday, January 13, 1967 (1 A.M. Saturday,
# January 14, Alaska Standard Time.) This resolution was passed with
@@ -578,7 +578,7 @@ Zone America/Adak 12:13:21 - LMT 1867 Oct 18
# year, the standard time of this Territory shall be advanced one
# hour...This Act shall take effect upon its approval. Approved this 26th
# day of April, A. D. 1933. LAWRENCE M JUDD, Governor of the Territory of
-# Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is
+# Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is
# hereby repealed...This Act shall take effect upon its approval, upon
# which date the standard time of this Territory shall be restored to
# that existing immediately prior to the taking effect of said Act 90.
@@ -1827,7 +1827,7 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# 1. 1884 or 1885: adoption of Mountain Standard Time (GMT-7)
# Exact date unknown
# 2. Oct 1916: switch to Pacific Standard Time (GMT-8)
-# Exact date in October unknown; Sunday October 1 is a reasonable guess.
+# Exact date in October unknown; Sunday October 1 is a reasonable guess.
# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
# Exact date in June unknown; Sunday June 2 is a reasonable guess.
# note#1:
@@ -3034,7 +3034,7 @@ Zone America/Martinique -4:04:20 - LMT 1890 # Fort-de-France
# From Gwillim Law (2005-04-21):
# The Associated Press story on the time change, which can be found at
# http://www.lapalmainteractivo.com/guias/content/gen/ap/America_Latina/AMC_G…
-# and elsewhere, says (fifth paragraph, translated from Spanish): "The last
+# and elsewhere, says (fifth paragraph, translated from Spanish): "The last
# time that a change of clocks was applied to save energy was in the year 2000
# during the Arnoldo Alemán administration."...
# The northamerica file says that Nicaragua has been on UTC-6 continuously
diff --git a/southamerica b/southamerica
index ba88fd2..e0c83ac 100644
--- a/southamerica
+++ b/southamerica
@@ -225,9 +225,9 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
# 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):
-# Hora de verano para la Republica Argentina (2003-06-08)
-# <http://www.spicasc.net/horvera.html>
+# From Paul Eggert (2014-08-09):
+# Hora de verano para la República Argentina
+# http://buenasiembra.com.ar/esoterismo/astrologia/hora-de-verano-de-la-repub…
# 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.
@@ -394,7 +394,7 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
# ...
# From Alexander Krivenyshev (2010-04-09):
-# According to news reports from El Diario de la Republica Province San
+# According to news reports from El Diario de la República Province San
# Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time
# after April 11, 2010 - will continue to have same time as rest of
# Argentina (UTC-3) (no DST).
@@ -685,7 +685,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# Oficial da União"...) in Brazil there are changes in the timezones,
# effective today (00:00am at June 24, 2008) as follows:
#
-# a) The timezone UTC+5 is e[x]tinguished, with all the Acre state and the
+# a) The timezone UTC+5 is extinguished, with all the Acre state and the
# part of the Amazonas state that had this timezone now being put to the
# timezone UTC+4
# b) The whole Pará state now is put at timezone UTC+3, instead of just
@@ -1657,7 +1657,7 @@ Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S
Rule Uruguay 1992 only - Oct 18 0:00 1:00 S
Rule Uruguay 1993 only - Feb 28 0:00 0 -
# From Eduardo Cota (2004-09-20):
-# The uruguayan government has decreed a change in the local time....
+# The Uruguayan government has decreed a change in the local time....
# http://www.presidencia.gub.uy/decretos/2004091502.htm
Rule Uruguay 2004 only - Sep 19 0:00 1:00 S
# From Steffen Thorsen (2005-03-11):
diff --git a/tz-link.htm b/tz-link.htm
index 8321a7a..9a47d45 100644
--- a/tz-link.htm
+++ b/tz-link.htm
@@ -179,7 +179,7 @@ timezone information for all countries</a> displays tables of DST rules.
Time Zones</a> lets you sort zone names and convert times.</li>
<li><a href="http://permatime.com/">Permatime</a> generates and views
links that refer to a particular point in time and can be displayed in
-multiple timezones.</li>
+multiple time zones.</li>
<li><a href="http://www.zeitverschiebung.net/en/">Time Difference</a>
calculates the current time difference between locations.</li>
<li><a href="http://www.wx-now.com/">Weather Now</a> lists the weather too.</li>
@@ -211,7 +211,7 @@ recommendations for the use of VTIMEZONE and <code><abbr>tz</abbr></code>.</li>
<li>CalConnect's <a href="http://calconnect.org/tc-timezone.shtml">TIMEZONE
Technical Committee</a> has developed
a <a href="http://tools.ietf.org/html/draft-douglass-timezone-service-11">draft
-timezone service protocol</a> along with a <a
+time zone service protocol</a> along with a <a
href="http://tools.ietf.org/html/draft-daboo-caldav-timezone-ref-01">draft
extension</a> to the <a href="http://caldav.calconnect.org/">CalDAV
calendar access protocol</a> to allow time zone information to be exchanged
@@ -235,8 +235,7 @@ href="http://www.w3.org/2000/01/foo">schema</a> was sketched out.</li>
</ul>
<h2>Other <code><abbr>tz</abbr></code> compilers</h2>
<ul>
-<li><a href="http://sourceforge.net/projects/vzic/">Vzic iCalendar
-Timezone Converter</a> describes a <a
+<li><a href="http://sourceforge.net/projects/vzic/">Vzic</a> is a <a
href="http://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>
program that compiles
<code><abbr>tz</abbr></code> source into iCalendar-compatible VTIMEZONE files.
@@ -378,7 +377,7 @@ implementations contain a copy of a 32-bit subset of a recent
Go-specific format.</li>
<li><a
href="http://users.skynet.be/Peter.Verthez/projects/intclock/">International
-clock (intclock)</a> is a multi-timezone clock for
+clock (intclock)</a> is a clock that displays multiple time zones on
<abbr>GNU</abbr>/Linux and similar systems. It is freely available
under the <abbr>GPL</abbr>.</li>
<li><a
diff --git a/zic.8 b/zic.8
index bf84c25..923ce1d 100644
--- a/zic.8
+++ b/zic.8
@@ -529,7 +529,7 @@ but this changed to the last Sunday in October starting in 1996.
For purposes of
display, "LMT" and "BMT" were initially used, respectively. Since
Swiss rules and later EU rules were applied, the display name for the
-timezone has been CET for standard time and CEST for daylight saving
+time zone has been CET for standard time and CEST for daylight saving
time.
.SH NOTES
For areas with more than two types of local time,
--
1.9.1
2
2