tz
Threads by month
- ----- 2026 -----
- May
- 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
- 6 participants
- 7506 discussions
* Makefile (XDST): Remove, replacing with the more-general ...
(DATAFORM): ... new macro. All uses changed.
(fulldata.zi, pdstdata.zi): Remove, replacing with the more-general ...
(vanguard.zi, main.zi, rearguard.zi): ... new targets.
All uses changed.
(check_zishrink): Fix bug that caused this test to fail when
PACKRATDATA was nonempty and testing vanguard or rearguard data.
* NEWS, europe: Mention changes.
* ziguard.awk: Handle fractional seconds as well as negative DST offsets.
Rename from zidst.awk, since it now handles issues other than just DST.
All uses changed.
---
Makefile | 69 ++++++++++++++++++-----------------------------
NEWS | 64 ++++++++++++++++++++++++++------------------
europe | 29 +++++++++-----------
zidst.awk | 50 ----------------------------------
ziguard.awk | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 166 insertions(+), 135 deletions(-)
delete mode 100644 zidst.awk
create mode 100644 ziguard.awk
diff --git a/Makefile b/Makefile
index 92ddb80..659a5b0 100644
--- a/Makefile
+++ b/Makefile
@@ -10,25 +10,14 @@ VERSION= unknown
# Email address for bug reports.
BUGEMAIL= tz(a)iana.org
-# To install the full data, which can contain daylight saving time
-# offsets that are negative (relative to standard time), use
-# XDST= full
-# To install data containing only positive daylight saving time
-# offsets, but otherwise as close to the full data as practical, use
-# XDST= pdst
-XDST= pdst
-# Parsers requiring DST offsets to be positive should use the file
-# pdstdata.zi, which contains almost all the data of 'africa' etc.,
-# except with positive DST offsets. This works around a problem that
-# was discovered in January 2018 with negative DST in tests for ICU
-# and OpenJDK. See:
-# https://mm.icann.org/pipermail/tz/2018-January/025825.html
-# https://mm.icann.org/pipermail/tz/2018-January/025822.html
-# Currently the 'africa' etc. files use pdst form if comments are
-# ignored, to ease transition for parsers that do not support
-# negative DST offsets. This is intended to change to full form at
-# some point, so that full-featured zi parsers that use the 'africa'
-# files will get the full data without changing anything.
+# Choose source data features. To get new features right away, use:
+# DATAFORM= vanguard
+# To wait a while before using new features, to give downstream users
+# time to upgrade zic (the default), use:
+# DATAFORM= main
+# To wait even longer for new features, use:
+# DATAFORM= rearguard
+DATAFORM= main
# Change the line below for your time zone (after finding the zone you want in
# the time zone files, or adding it to a time zone file).
@@ -483,8 +472,8 @@ TDATA= $(YDATA) $(NDATA) $(BACKWARD)
ZONETABLES= zone1970.tab zone.tab
TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
LEAP_DEPS= leapseconds.awk leap-seconds.list
-TZDATA_ZI_DEPS= zidst.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
-DSTDATA_ZI_DEPS= zidst.awk $(TDATA) $(PACKRATDATA)
+TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
+DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
leapseconds yearistype.sh $(ZONETABLES)
AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk zishrink.awk
@@ -522,7 +511,7 @@ VERSION_DEPS= \
SHELL= /bin/sh
all: tzselect yearistype zic zdump libtz.a $(TABDATA) \
- fulldata.zi pdstdata.zi
+ vanguard.zi main.zi rearguard.zi
ALL: all date $(ENCHILADA)
@@ -558,14 +547,14 @@ version: $(VERSION_DEPS)
mv $@.out $@
# These files can be tailored by setting BACKWARD, PACKRATDATA, etc.
-fulldata.zi pdstdata.zi: $(DSTDATA_ZI_DEPS)
- $(AWK) -v outfile='$@' -f zidst.awk $(TDATA) $(PACKRATDATA) \
+vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+ $(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \
>$@.out
mv $@.out $@
-tzdata.zi: $(XDST)data.zi version
+tzdata.zi: $(DATAFORM).zi version
version=`sed 1q version` && \
LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \
- $(XDST)data.zi >$@.out
+ $(DATAFORM).zi >$@.out
mv $@.out $@
version.h: version
@@ -747,31 +736,25 @@ check_tzs: $(TZS) $(TZS_NEW)
check_web: tz-how-to.html
$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
-# The format of the source files, either full or pdst.
-# Currently they are in pdst format, but this is expected to change.
-SDST = pdst
-
-# Check that zishrink.awk does not alter the data, and that zidst.awk
-# preserves $(SDST) data.
+# Check that zishrink.awk does not alter the data, and that ziguard.awk
+# preserves main-format data.
check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \
- $(XDST)data.zi tzdata.zi
+ $(DATAFORM).zi tzdata.zi
for type in posix right; do \
- mkdir -p time_t.dir/$$type time_t.dir/$$type-$(SDST) \
+ mkdir -p time_t.dir/$$type time_t.dir/$$type-t \
time_t.dir/$$type-shrunk && \
case $$type in \
right) leap='-L leapseconds';; \
*) leap=;; \
esac && \
- $(ZIC) $$leap -d time_t.dir/$$type $(XDST)data.zi && \
- $(AWK) '/^Rule/' $(XDST)data.zi | \
- $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
- case $(XDST) in \
- $(SDST)) \
- $(ZIC) $$leap -d time_t.dir/$$type-$(SDST) $(TDATA) && \
+ $(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \
+ case $(DATAFORM) in \
+ main) \
+ $(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \
$(AWK) '/^Rule/' $(TDATA) | \
- $(ZIC) $$leap -d time_t.dir/$$type-$(SDST) \
- $(XDST)data.zi && \
- diff -r time_t.dir/$$type time_t.dir/$$type-$(SDST);; \
+ $(ZIC) $$leap -d time_t.dir/$$type-t - \
+ $(PACKRATDATA) && \
+ diff -r time_t.dir/$$type time_t.dir/$$type-t;; \
esac && \
$(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \
diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \
diff --git a/NEWS b/NEWS
index adc9814..b13c356 100644
--- a/NEWS
+++ b/NEWS
@@ -3,8 +3,8 @@ News for the tz database
Unreleased, experimental changes
Briefly:
- Support zi parsers that mishandle negative DST offsets
- Add fractional seconds to source data format.
+ Add support for vanguard and rearguard data consumers.
+ Add fractional seconds to source data format and to vanguard data.
Changes to past time stamps
@@ -16,30 +16,41 @@ Unreleased, experimental changes
Changes to build procedure
- The new XDST macro in the Makefile lets the installer choose
- XDST=full, which allows arbitrary DST offsets in the data, or
- XDST=pdst, which allows only positive DST offsets. Choosing
- XDST=full is arguably more correct for Ireland, which observes
- Irish Standard Time (IST, UTC+01) in summer and GMT (UTC) in
- winter. Choosing XDST=pdst is better for zoneinfo parsers that do
- not work well with negative DST offsets, notably OpenJDK+CLDR.
- On platforms using tzcode or similar APIs, XDST should not affect
- any behavior other than that depending on the tm_isdst flag.
-
- For now this change does not affect client-visible behavior by
- default, as the Makefile defaults to XDST=pdst and uncommented
- parts of the data source files contain only pdst-format data.
- After a bit of time for testing, XDST=full and full-format source
- files are planned to become the default, so that parsers that
- support negative DST offsets can get full data without changing
- their build procedures. Parsers requiring positive DST offsets
- should use the new file pdstdata.zi instead of tzdata.zi or the
- source files 'africa' etc.: pdstdata.zi is pdst-compatible, it is
- automatically built from the data source files, and it will
- continue to be pdst-compatible regardless of XDST. To get
- full-format data now, use the new file fulldata.zi, which will
- continue to be full-format regardless of XDST. To get the format
- selected by XDST, use tzdata.zi.
+ The new DATAFORM macro in the Makefile lets the installer choose
+ among three source data formats. The idea is to lessen downstream
+ disruption when data formats are improved.
+
+ * DATAFORM=vanguard installs from the latest, bleeding-edge
+ format. DATAFORM=main (the default) installs from the format
+ used in the 'africa' etc. files. DATAFORM=rearguard installs
+ from a trailing-edge format. Eventually, elements of today's
+ vanguard format should move to the main format, and similarly
+ the main format's features should eventually move to the
+ rearguard format.
+
+ * In the current version, the main and rearguard formats are
+ identical and match that of 2018c, so this change does not
+ affect default behavior. The vanguard format contains two
+ features not in the main format: fractional seconds and negative
+ DST offsets. Fractional seconds were added in this release,
+ where they affect only zic input (output is unaffected).
+ Negative DST offsets improve support for Ireland, which uses
+ Irish Standard Time (IST, UTC+01) in summer and GMT (UTC) in
+ winter. tzcode has supported negative DST offsets for decades,
+ and this feature should move to the main format soon. However,
+ it will not move to the rearguard format for quite some time
+ because some downstream parsers do not support it.
+
+ * The build procedure constructs three files vanguard.zi, main.zi,
+ and rearguard.zi, one for each format. The files represent the
+ same data as closely as the formats allow. These three files
+ are intended for downstream data consumers and are not
+ installed. Zoneinfo parsers that require positive DST offsets
+ should start using rearguard.zi, so that they will be unaffected
+ when the negative-DST feature moves from vanguard to main.
+ Bleeding-edge Zoneinfo parsers that support the new features
+ already can use vanguard.zi; in this respect, current tzcode is
+ bleeding-edge.
Changes to code
@@ -48,6 +59,7 @@ Unreleased, experimental changes
zic currently rounds these fractions to the nearest integer
(breaking ties to the even integer), the fractions may be useful
to applications requiring more precision in historical timestamps.
+ This extension is currently used only in vanguard.zi.
The code is a bit more portable to MS-Windows. (Thanks to Manuela
Friedrich).
diff --git a/europe b/europe
index 76cbb5d..8aab26e 100644
--- a/europe
+++ b/europe
@@ -514,21 +514,19 @@ Link Europe/London Europe/Isle_of_Man
# https://mm.icann.org/pipermail/tz/2018-January/025825.html
# and with tests for OpenJDK:
# https://mm.icann.org/pipermail/tz/2018-January/025822.html
-# To work around this problem, zidst.awk translates the following data
-# lines into two forms. First, fulldata.zi contains the full data,
-# which includes negative DST offsets. Second, pdstdata.zi uses a
-# traditional approximation for Irish time stamps after 1971-10-31
-# 02:00 UTC; although this approximation has tm_isdst flags that are
-# the reverse of the full data, its UTC offsets are correct and this
-# suffices for ICU and OpenJDK. Although this source file currently
-# has pdstdata.zi lines active and fulldata.zi lines commented out,
-# this is intended to change in the near future and downstream code
-# should not rely on it.
+#
+# To work around this problem, the build procedure can translate the
+# following data into two forms, one with negative DST offsets and the
+# other form with a traditional approximation for Irish time stamps
+# after 1971-10-31 02:00 UTC; although this approximation has tm_isdst
+# flags that are reversed, its UTC offsets are correct and this often
+# suffices. This source file currently uses only positive DST
+# offsets, but this is intended to change and downstream code should
+# not rely on it.
#
# The following is like GB-Eire and EU, except with standard time in
-# summer and negative daylight saving time in winter.
-# This rule set is active in fulldata.zi and is commented out in
-# pdstdata.zi.
+# summer and negative daylight saving time in winter. It is for when
+# negative DST offsets are used.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
#Rule Eire 1971 only - Oct 31 2:00u -1:00 GMT
#Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 IST
@@ -549,10 +547,9 @@ Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2
0:00 1:00 IST 1947 Nov 2 2:00s
0:00 - GMT 1948 Apr 18 2:00s
0:00 GB-Eire GMT/IST 1968 Oct 27
-# The next line is active in fulldata.zi and commented out in pdstdata.zi.
+# The next line is for when negative DST offsets are used.
# 1:00 Eire IST/GMT
-# These three lines are active in pdstdata.zi and commented out in
-# fulldata.zi.
+# These three lines are for when positive DST offsets are used.
1:00 - IST 1971 Oct 31 2:00u
0:00 GB-Eire GMT/IST 1996
0:00 EU GMT/IST
diff --git a/zidst.awk b/zidst.awk
deleted file mode 100644
index 7885e9a..0000000
--- a/zidst.awk
+++ /dev/null
@@ -1,50 +0,0 @@
-# Convert tzdata source into full or positive-DST form
-
-# Contributed by Paul Eggert. This file is in the public domain.
-
-# This is not a general-purpose converter; it is designed for current tzdata.
-#
-# When converting to full form, the output can use negative DST offsets.
-#
-# When converting to positive-DST form, the output uses only positive
-# DST offsets. The idea is for the output data to simulate the
-# behavior of the input data as best it can within the constraints of
-# positive DST offsets.
-#
-# In the input, lines requiring the full format are commented #[full]
-# and the positive DST near-equivalents are commented #[pdst].
-
-BEGIN {
- dst_type["full"] = 1
- dst_type["pdst"] = 1
-
- # The command line should set OUTFILE to the name of the output file,
- # which should start with either "full" or "pdst".
- todst = substr(outfile, 1, 4)
- if (!dst_type[todst]) exit 1
-}
-
-/^Zone/ { zone = $2 }
-
-{
- in_comment = /^#/
-
- # Test whether this line should differ between the full and the pdst versions.
- Rule_Eire = /^#?Rule[\t ]+Eire[\t ]/
- Zone_Dublin_post_1968 \
- = (zone == "Europe/Dublin" && /^#?[\t ]+[01]:00[\t ]/ \
- && (!$(in_comment + 4) || 1968 < $(in_comment + 4)))
-
- # If so, uncomment the desired version and comment out the undesired one.
- if (Rule_Eire || Zone_Dublin_post_1968) {
- if ((Rule_Eire \
- || (Zone_Dublin_post_1968 && $(in_comment + 3) == "IST/GMT")) \
- == (todst == "full")) {
- sub(/^#/, "")
- } else if (/^[^#]/) {
- sub(/^/, "#")
- }
- }
-}
-
-{ print }
diff --git a/ziguard.awk b/ziguard.awk
new file mode 100644
index 0000000..795b4ef
--- /dev/null
+++ b/ziguard.awk
@@ -0,0 +1,89 @@
+# Convert tzdata source into vanguard or rearguard form.
+
+# Contributed by Paul Eggert. This file is in the public domain.
+
+# This is not a general-purpose converter; it is designed for current tzdata.
+#
+# When converting to vanguard form, the output can use fractional seconds
+# and negative DST offsets.
+#
+# When converting to rearguard form, the output omits fractional
+# seconds and uses only positive DST offsets. The idea is for the
+# output data to simulate the behavior of the input data as best it
+# can within the constraints of the rearguard format.
+
+BEGIN {
+ dst_type["vanguard.zi"] = 1
+ dst_type["main.zi"] = 1
+ dst_type["rearguard.zi"] = 1
+
+ # The command line should set OUTFILE to the name of the output file.
+ if (!dst_type[outfile]) exit 1
+ vanguard = outfile == "vanguard.zi"
+
+ # List non-integer standard times more accurately if known.
+ # This list does not attempt to record every UT offset that is
+ # not an integral multiple of 1 s; it merely records those that
+ # do not appear to be just LMT.
+ frac["-5:36:13"] = "-5:36:13.3" # America/Costa_Rica before 1921
+ frac["-5:07:10"] = "-5:07:10.41" # America/Jamaica before 1912
+ frac["-4:16:48"] = "-4:16:48.25" # America/Cordoba etc. 1894-1920
+ frac["-0:36:45"] = "-0:36:44.68" # Europe/Lisbon before 1912
+ frac["-0:25:21"] = "-0:25:21.1" # Europe/Dublin 1880-1916
+ frac["0:19:32"] = "0:19:32.13" # Europe/Amsterdam before 1937
+ frac["1:39:49"] = "1:39:49.2" # Europe/Helsinki before 1921
+ frac["2:05:09"] = "2:05:08.9" # Africa/Cairo before 1900
+ frac["4:37:11"] = "4:37:10.8" # Asia/Tashkent before 1924
+ frac["7:06:30"] = "7:06:30.1333" #... Asia/Ho_Chi_Minh 1906-1911
+ frac["7:07:12"] = "7:07:12.5" # Asia/Jakarta before 1923
+ frac["7:36:42"] = "7:36:41.7" # Asia/Hong_Kong before 1904
+ frac["8:05:43"] = "8:05:43.2" # Asia/Shanghai before 1901
+}
+
+/^Zone/ { zone = $2 }
+
+outfile != "main.zi" {
+ in_comment = /^#/
+
+ # If this line should differ due to Ireland using negative DST offsets,
+ # uncomment the desired version and comment out the undesired one.
+ Rule_Eire = /^#?Rule[\t ]+Eire[\t ]/
+ Zone_Dublin_post_1968 \
+ = (zone == "Europe/Dublin" && /^#?[\t ]+[01]:00[\t ]/ \
+ && (!$(in_comment + 4) || 1968 < $(in_comment + 4)))
+ if (Rule_Eire || Zone_Dublin_post_1968) {
+ if ((Rule_Eire \
+ || (Zone_Dublin_post_1968 && $(in_comment + 3) == "IST/GMT")) \
+ == vanguard) {
+ sub(/^#/, "")
+ } else if (/^[^#]/) {
+ sub(/^/, "#")
+ }
+ }
+
+ # Add or remove fractional seconds as needed.
+ f = $1 == "Zone" ? 3 : 1
+ for (rounded in frac) {
+ original = frac[rounded]
+ if ($f == rounded || $f == original) {
+ $f = vanguard ? original : rounded
+ }
+ }
+}
+
+# If a Link line is followed by a Zone line for the same data, comment
+# out the Link line. This can happen if backzone overrides a Link
+# with a Zone.
+/^Link/ {
+ linkline[$3] = NR
+}
+/^Zone/ {
+ sub(/^Link/, "#Link", line[linkline[$2]])
+}
+
+{ line[NR] = $0 }
+
+END {
+ for (i = 1; i <= NR; i++)
+ print line[i]
+}
--
2.14.3
1
0
* NEWS, zic.8: Mention this.
* zic.c (gethms): Round to even instead of discarding fractional
seconds.
---
NEWS | 5 +++--
zic.8 | 4 +++-
zic.c | 18 ++++++++++++++----
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/NEWS b/NEWS
index f00b29f..adc9814 100644
--- a/NEWS
+++ b/NEWS
@@ -45,8 +45,9 @@ Unreleased, experimental changes
zic now accepts fractional seconds in expressions like 00:19:32.13
(the UT offset of the Netherlands from 1835 to 1937). Although
- zic currently ignores these fractions, they may be useful to
- applications requiring more precision in historical timestamps.
+ zic currently rounds these fractions to the nearest integer
+ (breaking ties to the even integer), the fractions may be useful
+ to applications requiring more precision in historical timestamps.
The code is a bit more portable to MS-Windows. (Thanks to Manuela
Friedrich).
diff --git a/zic.8 b/zic.8
index f1fc8e2..28e4bd6 100644
--- a/zic.8
+++ b/zic.8
@@ -267,8 +267,10 @@ where hour 0 is midnight at the start of the day,
and hour 24 is midnight at the end of the day.
Although
.I zic
-currently ignores any fractional seconds, the fractions may be useful
+currently rounds fractional seconds to the nearest integer
+(breaking ties to the even integer), the fractions may be useful
to other applications requiring greater precision.
+The source format does not specify any maximum precision.
Any of these forms may be followed by the letter
.B w
if the given time is local
diff --git a/zic.c b/zic.c
index 4965a10..6ad31f9 100644
--- a/zic.c
+++ b/zic.c
@@ -1197,7 +1197,8 @@ gethms(char const *string, char const *errstring, bool signable)
{
zic_t hh;
int sign, mm = 0, ss = 0;
- char hhx, mmx, ssx, xs;
+ char hhx, mmx, ssx, xr = '0', xs;
+ int tenths = 0;
bool ok = true;
if (string == NULL || *string == '\0')
@@ -1209,10 +1210,18 @@ gethms(char const *string, char const *errstring, bool signable)
++string;
} else sign = 1;
switch (sscanf(string,
- "%"SCNdZIC"%c%d%c%d%c%*1d%*[0123456789]%c",
- &hh, &hhx, &mm, &mmx, &ss, &ssx, &xs)) {
+ "%"SCNdZIC"%c%d%c%d%c%1d%*[0]%c%*[0123456789]%c",
+ &hh, &hhx, &mm, &mmx, &ss, &ssx, &tenths, &xr, &xs)) {
default: ok = false; break;
- case 6: ok &= ssx == '.'; /* fallthrough */
+ case 8:
+ ok = '0' <= xr && xr <= '9';
+ /* fallthrough */
+ case 7:
+ ok &= ssx == '.';
+ if (ok && noise)
+ warning(_("fractional seconds rejected by"
+ " pre-2018 versions of zic"));
+ /* fallthrough */
case 5: ok &= mmx == ':'; /* fallthrough */
case 3: ok &= hhx == ':'; /* fallthrough */
case 1: break;
@@ -1231,6 +1240,7 @@ gethms(char const *string, char const *errstring, bool signable)
error(_("time overflow"));
return 0;
}
+ ss += 5 + ((ss ^ 1) & (xr == '0')) <= tenths; /* Round to even. */
if (noise && (hh > HOURSPERDAY ||
(hh == HOURSPERDAY && (mm != 0 || ss != 0))))
warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
--
2.7.4
1
0
Feb. 5, 2018
This was discovered when checking a not-yet-published
version of zic.
* NEWS: Mention this.
* northamerica (America/Jamaica, America/Grand_Turk):
* backzone (America/Cayman): Fix rounding error.
---
NEWS | 3 +++
backzone | 2 +-
northamerica | 6 +++---
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/NEWS b/NEWS
index beefd39..f00b29f 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,9 @@ Unreleased, experimental changes
Enderbury and Kiritimati skipped New Year's Eve 1994, not
New Year's day 1995. (Thanks to Kerry Shetline.)
+ Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in
+ Turks & Caicos.
+
Changes to build procedure
The new XDST macro in the Makefile lets the installer choose
diff --git a/backzone b/backzone
index 3006b27..cc724aa 100644
--- a/backzone
+++ b/backzone
@@ -271,7 +271,7 @@ Zone America/Aruba -4:40:24 - LMT 1912 Feb 12 # Oranjestad
# Cayman Is
Zone America/Cayman -5:25:32 - LMT 1890 # Georgetown
- -5:07:11 - KMT 1912 Feb # Kingston Mean Time
+ -5:07:10 - KMT 1912 Feb # Kingston Mean Time
-5:00 - EST
# Canada
diff --git a/northamerica b/northamerica
index a014126..dabca97 100644
--- a/northamerica
+++ b/northamerica
@@ -3264,8 +3264,8 @@ Zone America/Tegucigalpa -5:48:52 - LMT 1921 Apr
# http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
-Zone America/Jamaica -5:07:11 - LMT 1890 # Kingston
- -5:07:11 - KMT 1912 Feb # Kingston Mean Time
+Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston
+ -5:07:10 - KMT 1912 Feb # Kingston Mean Time
-5:00 - EST 1974
-5:00 US E%sT 1984
-5:00 - EST
@@ -3415,7 +3415,7 @@ Zone America/Miquelon -3:44:40 - LMT 1911 May 15 # St Pierre
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Grand_Turk -4:44:32 - LMT 1890
- -5:07:11 - KMT 1912 Feb # Kingston Mean Time
+ -5:07:10 - KMT 1912 Feb # Kingston Mean Time
-5:00 - EST 1979
-5:00 US E%sT 2015 Nov Sun>=1 2:00
-4:00 - AST 2018 Mar 11 3:00
--
2.14.3
1
0
Hello,
When these time zones switched sides of the International Dateline at the beginning of 1995, the tz database, viewed via zdump, shows Sunday, January 1 being skipped — Saturday December 31, 1994 being followed immediately by Monday, January 2, 1995.
I found an article, however, that suggests that December 31 was the day that was skipped, so that the transition would be from Friday December 30, 1994 to Sunday January 1, 1995: https://wikitravel.org/en/Kiribati <https://wikitravel.org/en/Kiribati>
I have no particular reason to believe this article is authoritative, but it did strike me odd that New Year’s Day, and a Sunday (more likely to offend some people’s religious sensibilities) would be the day that was skipped rather than Saturday.
-Kerry
2
2
Feb. 3, 2018
Oops, here is the patch attached
============ Forwarded message ============
>From : 24tz Team <info(a)24timezones.com>
To : "tz"<tz(a)iana.org>
Date : Thu, 01 Feb 2018 13:31:14 +0200
Subject : Request to mention 24timezones.com under the links section
============ Forwarded message ============
> Greetings
>
> https://24timezones.com is one of the oldest time zones related websites on the web, and has helped millions of people find out the time around the globe over the past 13 years, using the tz database as its primary source.
>
> It would be great if you could mention us under the "Websites using recent versions of the tz database" section. Please find suggested patch attached and adjust order of complexity and fanciness accordingly :)
>
> Many thanks for all efforts in maintaining this database!
>
>
2
1
* southamerica: Coalesc comments for standard time in Argentina
before 1920.
---
southamerica | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/southamerica b/southamerica
index e1c6590..e3684aa 100644
--- a/southamerica
+++ b/southamerica
@@ -202,12 +202,14 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
# 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 (2014-08-09):
+# From Paul Eggert (2018-01-31):
# 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.
+# over Shanks & Pottenger. It is upward compatible with Milne, who
+# says Córdoba time was -4:16:48.2.
+
#
# From Mariano Absatz (2004-06-05):
# These media articles from a major newspaper mostly cover the current state:
@@ -392,9 +394,6 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
# plus is that this silences a zic complaint that there's no POSIX TZ
# setting for time stamps past 2038.
-# From Paul Eggert (2013-02-21):
-# Milne says Córdoba time was -4:16:48.2. Round to the nearest second.
-
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Buenos Aires (BA), Capital Federal (CF),
--
2.14.3
1
0
Why exactly do you want an America/Boston? The timezone for Boston is America/
New_York.
--
John Harris, Jr. <johnmh(a)splentity.com>
CTO, Splentity Software
2
1
Boston is unfortunately not listed in the Time Zone Database. Are you going to add it?
4
3
* checktab.awk: Check for common instances of a Rule line
containing LETTER/S that are never used. All instances removed.
This does not change zic output; it merely omits data no longer
relevant to entries that now use numeric time zone abbreviations.
---
africa | 8 +--
asia | 148 ++++++++++++++++++++--------------------
australasia | 86 ++++++++++++------------
checktab.awk | 9 +++
europe | 14 ++--
southamerica | 216 +++++++++++++++++++++++++++++------------------------------
6 files changed, 245 insertions(+), 236 deletions(-)
diff --git a/africa b/africa
index 56640cd..0f8b16c 100644
--- a/africa
+++ b/africa
@@ -396,8 +396,8 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
# lack of better info, use Shanks except treat the minus sign as a
# typo, and assume DST started in 1920 not 1936.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST
-Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT
+Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
+Rule Ghana 1920 1942 - Dec 31 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Accra -0:00:52 - LMT 1918
0:00 Ghana GMT/+0020
@@ -609,9 +609,9 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
# at 2am (or 02:00) local time..."
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Mauritius 1982 only - Oct 10 0:00 1:00 S
+Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
Rule Mauritius 1983 only - Mar 21 0:00 0 -
-Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 S
+Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
diff --git a/asia b/asia
index 3f6e95c..63d2fb0 100644
--- a/asia
+++ b/asia
@@ -69,13 +69,13 @@
Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
-Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S
+Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
-Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S
+Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 -
Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
-Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 S
+Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
# Afghanistan
@@ -110,7 +110,7 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
# (brief)
# http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 S
+Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
@@ -136,7 +136,7 @@ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
# http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S
+Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baku 3:19:24 - LMT 1924 May 2
@@ -223,7 +223,7 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2
# http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Dhaka 2009 only - Jun 19 23:00 1:00 S
+Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
Rule Dhaka 2009 only - Dec 31 24:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1106,61 +1106,61 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
# thirtieth day of Shahrivar.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Iran 1978 1980 - Mar 21 0:00 1:00 D
-Rule Iran 1978 only - Oct 21 0:00 0 S
-Rule Iran 1979 only - Sep 19 0:00 0 S
-Rule Iran 1980 only - Sep 23 0:00 0 S
-Rule Iran 1991 only - May 3 0:00 1:00 D
-Rule Iran 1992 1995 - Mar 22 0:00 1:00 D
-Rule Iran 1991 1995 - Sep 22 0:00 0 S
-Rule Iran 1996 only - Mar 21 0:00 1:00 D
-Rule Iran 1996 only - Sep 21 0:00 0 S
-Rule Iran 1997 1999 - Mar 22 0:00 1:00 D
-Rule Iran 1997 1999 - Sep 22 0:00 0 S
-Rule Iran 2000 only - Mar 21 0:00 1:00 D
-Rule Iran 2000 only - Sep 21 0:00 0 S
-Rule Iran 2001 2003 - Mar 22 0:00 1:00 D
-Rule Iran 2001 2003 - Sep 22 0:00 0 S
-Rule Iran 2004 only - Mar 21 0:00 1:00 D
-Rule Iran 2004 only - Sep 21 0:00 0 S
-Rule Iran 2005 only - Mar 22 0:00 1:00 D
-Rule Iran 2005 only - Sep 22 0:00 0 S
-Rule Iran 2008 only - Mar 21 0:00 1:00 D
-Rule Iran 2008 only - Sep 21 0:00 0 S
-Rule Iran 2009 2011 - Mar 22 0:00 1:00 D
-Rule Iran 2009 2011 - Sep 22 0:00 0 S
-Rule Iran 2012 only - Mar 21 0:00 1:00 D
-Rule Iran 2012 only - Sep 21 0:00 0 S
-Rule Iran 2013 2015 - Mar 22 0:00 1:00 D
-Rule Iran 2013 2015 - Sep 22 0:00 0 S
-Rule Iran 2016 only - Mar 21 0:00 1:00 D
-Rule Iran 2016 only - Sep 21 0:00 0 S
-Rule Iran 2017 2019 - Mar 22 0:00 1:00 D
-Rule Iran 2017 2019 - Sep 22 0:00 0 S
-Rule Iran 2020 only - Mar 21 0:00 1:00 D
-Rule Iran 2020 only - Sep 21 0:00 0 S
-Rule Iran 2021 2023 - Mar 22 0:00 1:00 D
-Rule Iran 2021 2023 - Sep 22 0:00 0 S
-Rule Iran 2024 only - Mar 21 0:00 1:00 D
-Rule Iran 2024 only - Sep 21 0:00 0 S
-Rule Iran 2025 2027 - Mar 22 0:00 1:00 D
-Rule Iran 2025 2027 - Sep 22 0:00 0 S
-Rule Iran 2028 2029 - Mar 21 0:00 1:00 D
-Rule Iran 2028 2029 - Sep 21 0:00 0 S
-Rule Iran 2030 2031 - Mar 22 0:00 1:00 D
-Rule Iran 2030 2031 - Sep 22 0:00 0 S
-Rule Iran 2032 2033 - Mar 21 0:00 1:00 D
-Rule Iran 2032 2033 - Sep 21 0:00 0 S
-Rule Iran 2034 2035 - Mar 22 0:00 1:00 D
-Rule Iran 2034 2035 - Sep 22 0:00 0 S
+Rule Iran 1978 1980 - Mar 21 0:00 1:00 -
+Rule Iran 1978 only - Oct 21 0:00 0 -
+Rule Iran 1979 only - Sep 19 0:00 0 -
+Rule Iran 1980 only - Sep 23 0:00 0 -
+Rule Iran 1991 only - May 3 0:00 1:00 -
+Rule Iran 1992 1995 - Mar 22 0:00 1:00 -
+Rule Iran 1991 1995 - Sep 22 0:00 0 -
+Rule Iran 1996 only - Mar 21 0:00 1:00 -
+Rule Iran 1996 only - Sep 21 0:00 0 -
+Rule Iran 1997 1999 - Mar 22 0:00 1:00 -
+Rule Iran 1997 1999 - Sep 22 0:00 0 -
+Rule Iran 2000 only - Mar 21 0:00 1:00 -
+Rule Iran 2000 only - Sep 21 0:00 0 -
+Rule Iran 2001 2003 - Mar 22 0:00 1:00 -
+Rule Iran 2001 2003 - Sep 22 0:00 0 -
+Rule Iran 2004 only - Mar 21 0:00 1:00 -
+Rule Iran 2004 only - Sep 21 0:00 0 -
+Rule Iran 2005 only - Mar 22 0:00 1:00 -
+Rule Iran 2005 only - Sep 22 0:00 0 -
+Rule Iran 2008 only - Mar 21 0:00 1:00 -
+Rule Iran 2008 only - Sep 21 0:00 0 -
+Rule Iran 2009 2011 - Mar 22 0:00 1:00 -
+Rule Iran 2009 2011 - Sep 22 0:00 0 -
+Rule Iran 2012 only - Mar 21 0:00 1:00 -
+Rule Iran 2012 only - Sep 21 0:00 0 -
+Rule Iran 2013 2015 - Mar 22 0:00 1:00 -
+Rule Iran 2013 2015 - Sep 22 0:00 0 -
+Rule Iran 2016 only - Mar 21 0:00 1:00 -
+Rule Iran 2016 only - Sep 21 0:00 0 -
+Rule Iran 2017 2019 - Mar 22 0:00 1:00 -
+Rule Iran 2017 2019 - Sep 22 0:00 0 -
+Rule Iran 2020 only - Mar 21 0:00 1:00 -
+Rule Iran 2020 only - Sep 21 0:00 0 -
+Rule Iran 2021 2023 - Mar 22 0:00 1:00 -
+Rule Iran 2021 2023 - Sep 22 0:00 0 -
+Rule Iran 2024 only - Mar 21 0:00 1:00 -
+Rule Iran 2024 only - Sep 21 0:00 0 -
+Rule Iran 2025 2027 - Mar 22 0:00 1:00 -
+Rule Iran 2025 2027 - Sep 22 0:00 0 -
+Rule Iran 2028 2029 - Mar 21 0:00 1:00 -
+Rule Iran 2028 2029 - Sep 21 0:00 0 -
+Rule Iran 2030 2031 - Mar 22 0:00 1:00 -
+Rule Iran 2030 2031 - Sep 22 0:00 0 -
+Rule Iran 2032 2033 - Mar 21 0:00 1:00 -
+Rule Iran 2032 2033 - Sep 21 0:00 0 -
+Rule Iran 2034 2035 - Mar 22 0:00 1:00 -
+Rule Iran 2034 2035 - Sep 22 0:00 0 -
#
# The following rules are approximations starting in the year 2038.
# These are the best post-2037 approximations available, given the
# restrictions of a single rule using a Gregorian-based data format.
# At some point this table will need to be extended, though quite
# possibly Iran will change the rules first.
-Rule Iran 2036 max - Mar 21 0:00 1:00 D
-Rule Iran 2036 max - Sep 21 0:00 0 S
+Rule Iran 2036 max - Mar 21 0:00 1:00 -
+Rule Iran 2036 max - Sep 21 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Tehran 3:25:44 - LMT 1916
@@ -1196,17 +1196,17 @@ Zone Asia/Tehran 3:25:44 - LMT 1916
# https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Iraq 1982 only - May 1 0:00 1:00 D
-Rule Iraq 1982 1984 - Oct 1 0:00 0 S
-Rule Iraq 1983 only - Mar 31 0:00 1:00 D
-Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D
-Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S
-Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D
+Rule Iraq 1982 only - May 1 0:00 1:00 -
+Rule Iraq 1982 1984 - Oct 1 0:00 0 -
+Rule Iraq 1983 only - Mar 31 0:00 1:00 -
+Rule Iraq 1984 1985 - Apr 1 0:00 1:00 -
+Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
+Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 -
# IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo.
# Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this.
#
-Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 D
-Rule Iraq 1991 2007 - Oct 1 3:00s 0 S
+Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
+Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baghdad 2:57:40 - LMT 1890
2:57:36 - BMT 1918 # Baghdad Mean Time?
@@ -1903,9 +1903,9 @@ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk
# From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 S
+Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
-Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S
+Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2
@@ -2037,7 +2037,7 @@ Zone Asia/Beirut 2:22:00 - LMT 1880
# Malaysia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 TS # one-Third Summer
+Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
#
# peninsular Malaysia
@@ -2182,7 +2182,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé
# http://zasag.mn/news/view/8969
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S
+Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
Rule Mongol 1983 only - Oct 1 0:00 0 -
# Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
# but McDow says the 2001 switches occurred at 02:00. Also, IATA SSIM
@@ -2199,13 +2199,13 @@ Rule Mongol 1983 only - Oct 1 0:00 0 -
# Mongolian Government meeting has concluded today to cancel daylight
# saving time adoption in Mongolia. Source: http://zasag.mn/news/view/16192
-Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 S
+Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 -
Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
# IATA SSIM (1999-09) says Mongolia no longer observes DST.
-Rule Mongol 2001 only - Apr lastSat 2:00 1:00 S
+Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
-Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 S
-Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 S
+Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
+Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -2737,11 +2737,11 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct
# http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use…
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Phil 1936 only - Nov 1 0:00 1:00 S
+Rule Phil 1936 only - Nov 1 0:00 1:00 -
Rule Phil 1937 only - Feb 1 0:00 0 -
-Rule Phil 1954 only - Apr 12 0:00 1:00 S
+Rule Phil 1954 only - Apr 12 0:00 1:00 -
Rule Phil 1954 only - Jul 1 0:00 0 -
-Rule Phil 1978 only - Mar 22 0:00 1:00 S
+Rule Phil 1978 only - Mar 22 0:00 1:00 -
Rule Phil 1978 only - Sep 21 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31
diff --git a/australasia b/australasia
index bdf19a4..2de41d2 100644
--- a/australasia
+++ b/australasia
@@ -196,20 +196,20 @@ Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb
# Lord Howe Island
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule LH 1981 1984 - Oct lastSun 2:00 1:00 D
-Rule LH 1982 1985 - Mar Sun>=1 2:00 0 S
-Rule LH 1985 only - Oct lastSun 2:00 0:30 D
-Rule LH 1986 1989 - Mar Sun>=15 2:00 0 S
-Rule LH 1986 only - Oct 19 2:00 0:30 D
-Rule LH 1987 1999 - Oct lastSun 2:00 0:30 D
-Rule LH 1990 1995 - Mar Sun>=1 2:00 0 S
-Rule LH 1996 2005 - Mar lastSun 2:00 0 S
-Rule LH 2000 only - Aug lastSun 2:00 0:30 D
-Rule LH 2001 2007 - Oct lastSun 2:00 0:30 D
-Rule LH 2006 only - Apr Sun>=1 2:00 0 S
-Rule LH 2007 only - Mar lastSun 2:00 0 S
-Rule LH 2008 max - Apr Sun>=1 2:00 0 S
-Rule LH 2008 max - Oct Sun>=1 2:00 0:30 D
+Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
+Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
+Rule LH 1985 only - Oct lastSun 2:00 0:30 -
+Rule LH 1986 1989 - Mar Sun>=15 2:00 0 -
+Rule LH 1986 only - Oct 19 2:00 0:30 -
+Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
+Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
+Rule LH 1996 2005 - Mar lastSun 2:00 0 -
+Rule LH 2000 only - Aug lastSun 2:00 0:30 -
+Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
+Rule LH 2006 only - Apr Sun>=1 2:00 0 -
+Rule LH 2007 only - Mar lastSun 2:00 0 -
+Rule LH 2008 max - Apr Sun>=1 2:00 0 -
+Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb
10:00 - AEST 1981 Mar
10:30 LH +1030/+1130 1985 Jul
@@ -367,15 +367,15 @@ Zone Indian/Cocos 6:27:40 - LMT 1900
# practice than guessing no DST.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S
+Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
-Rule Fiji 2009 only - Nov 29 2:00 1:00 S
+Rule Fiji 2009 only - Nov 29 2:00 1:00 -
Rule Fiji 2010 only - Mar lastSun 3:00 0 -
-Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 S
+Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
-Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 S
+Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 -
Rule Fiji 2015 max - Jan Sun>=14 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
@@ -447,9 +447,9 @@ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe
# New Caledonia
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S
+Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
Rule NC 1978 1979 - Feb 27 0:00 0 -
-Rule NC 1996 only - Dec 1 2:00s 1:00 S
+Rule NC 1996 only - Dec 1 2:00s 1:00 -
# Shanks & Pottenger say the following was at 2:00; go with IATA.
Rule NC 1997 only - Mar 2 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -474,23 +474,23 @@ Rule NZ 1946 only - Jan 1 0:00 0 S
# transition. Duplicate the Rule lines for now, to give the 2018a change
# time to percolate out.
Rule NZ 1974 only - Nov Sun>=1 2:00s 1:00 D
-Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 D
+Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 -
Rule NZ 1975 only - Feb lastSun 2:00s 0 S
-Rule Chatham 1975 only - Feb lastSun 2:45s 0 S
+Rule Chatham 1975 only - Feb lastSun 2:45s 0 -
Rule NZ 1975 1988 - Oct lastSun 2:00s 1:00 D
-Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 D
+Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 -
Rule NZ 1976 1989 - Mar Sun>=1 2:00s 0 S
-Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 S
+Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 -
Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
-Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 D
+Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
-Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 D
+Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
-Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 S
+Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
-Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 D
+Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
-Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 S
+Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2
11:30 NZ NZ%sT 1946 Jan 1
@@ -514,9 +514,9 @@ Link Pacific/Auckland Antarctica/McMurdo
# Cook Is
# From Shanks & Pottenger:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Cook 1978 only - Nov 12 0:00 0:30 HS
+Rule Cook 1978 only - Nov 12 0:00 0:30 -
Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
-Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 HS
+Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Rarotonga -10:39:04 - LMT 1901 # Avarua
-10:30 - -1030 1978 Nov 12
@@ -657,11 +657,11 @@ Link Pacific/Pago_Pago Pacific/Midway # in US minor outlying islands
# Assume the pattern instituted in 2012 will continue indefinitely.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule WS 2010 only - Sep lastSun 0:00 1 D
-Rule WS 2011 only - Apr Sat>=1 4:00 0 S
-Rule WS 2011 only - Sep lastSat 3:00 1 D
-Rule WS 2012 max - Apr Sun>=1 4:00 0 S
-Rule WS 2012 max - Sep lastSun 3:00 1 D
+Rule WS 2010 only - Sep lastSun 0:00 1 -
+Rule WS 2011 only - Apr Sat>=1 4:00 0 -
+Rule WS 2011 only - Sep lastSat 3:00 1 -
+Rule WS 2012 max - Apr Sun>=1 4:00 0 -
+Rule WS 2012 max - Sep lastSun 3:00 1 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Apia 12:33:04 - LMT 1892 Jul 5
-11:26:56 - LMT 1911
@@ -701,11 +701,11 @@ Zone Pacific/Fakaofo -11:24:56 - LMT 1901
# Tonga
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Tonga 1999 only - Oct 7 2:00s 1:00 S
+Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
Rule Tonga 2000 only - Mar 19 2:00s 0 -
-Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 S
+Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
-Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 S
+Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Tongatapu 12:19:20 - LMT 1901
@@ -782,12 +782,12 @@ Zone Pacific/Wake 11:06:28 - LMT 1901
# Vanuatu
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Vanuatu 1983 only - Sep 25 0:00 1:00 S
+Rule Vanuatu 1983 only - Sep 25 0:00 1:00 -
Rule Vanuatu 1984 1991 - Mar Sun>=23 0:00 0 -
-Rule Vanuatu 1984 only - Oct 23 0:00 1:00 S
-Rule Vanuatu 1985 1991 - Sep Sun>=23 0:00 1:00 S
+Rule Vanuatu 1984 only - Oct 23 0:00 1:00 -
+Rule Vanuatu 1985 1991 - Sep Sun>=23 0:00 1:00 -
Rule Vanuatu 1992 1993 - Jan Sun>=23 0:00 0 -
-Rule Vanuatu 1992 only - Oct Sun>=23 0:00 1:00 S
+Rule Vanuatu 1992 only - Oct Sun>=23 0:00 1:00 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila
11:00 Vanuatu +11/+12
diff --git a/checktab.awk b/checktab.awk
index 2397673..393ab19 100644
--- a/checktab.awk
+++ b/checktab.awk
@@ -126,6 +126,7 @@ $1 ~ /^#/ { next }
if ($1 == "Zone") {
tz = $2
ruleUsed[$4] = 1
+ if ($5 ~ /%/) rulePercentUsed[$4] = 1
} 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.
@@ -136,8 +137,10 @@ $1 ~ /^#/ { next }
if (src != dst) tz = $3
} else if ($1 == "Rule") {
ruleDefined[$2] = 1
+ if ($10 != "-") ruleLetters[$2] = 1
} else {
ruleUsed[$2] = 1
+ if ($3 ~ /%/) rulePercentUsed[$2] = 1
}
if (tz && tz ~ /\//) {
if (!tztab[tz]) {
@@ -156,6 +159,12 @@ END {
status = 1
}
}
+ for (tz in ruleLetters) {
+ if (!rulePercentUsed[tz]) {
+ printf "%s: Rule contains letters never used\n", tz
+ status = 1
+ }
+ }
for (tz in tztab) {
if (!zoneSeen[tz]) {
printf "%s:%d: no Zone table for '%s'\n", \
diff --git a/europe b/europe
index 5aeda33..76cbb5d 100644
--- a/europe
+++ b/europe
@@ -1539,21 +1539,21 @@ Zone Europe/Budapest 1:16:20 - LMT 1890 Oct
# http://www.almanak.hi.is/klukkan.html
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Iceland 1917 1919 - Feb 19 23:00 1:00 S
+Rule Iceland 1917 1919 - Feb 19 23:00 1:00 -
Rule Iceland 1917 only - Oct 21 1:00 0 -
Rule Iceland 1918 1919 - Nov 16 1:00 0 -
-Rule Iceland 1921 only - Mar 19 23:00 1:00 S
+Rule Iceland 1921 only - Mar 19 23:00 1:00 -
Rule Iceland 1921 only - Jun 23 1:00 0 -
-Rule Iceland 1939 only - Apr 29 23:00 1:00 S
+Rule Iceland 1939 only - Apr 29 23:00 1:00 -
Rule Iceland 1939 only - Oct 29 2:00 0 -
-Rule Iceland 1940 only - Feb 25 2:00 1:00 S
+Rule Iceland 1940 only - Feb 25 2:00 1:00 -
Rule Iceland 1940 1941 - Nov Sun>=2 1:00s 0 -
-Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 S
+Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 -
# 1943-1946 - first Sunday in March until first Sunday in winter
-Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 S
+Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 -
Rule Iceland 1942 1948 - Oct Sun>=22 1:00s 0 -
# 1947-1967 - first Sunday in April until first Sunday in winter
-Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 S
+Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 -
# 1949 and 1967 Oct transitions delayed by 1 week
Rule Iceland 1949 only - Oct 30 1:00s 0 -
Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 -
diff --git a/southamerica b/southamerica
index bcfde4b..e1c6590 100644
--- a/southamerica
+++ b/southamerica
@@ -47,28 +47,28 @@
# AR was chosen because they are the ISO letters that represent Argentina.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Arg 1930 only - Dec 1 0:00 1:00 S
+Rule Arg 1930 only - Dec 1 0:00 1:00 -
Rule Arg 1931 only - Apr 1 0:00 0 -
-Rule Arg 1931 only - Oct 15 0:00 1:00 S
+Rule Arg 1931 only - Oct 15 0:00 1:00 -
Rule Arg 1932 1940 - Mar 1 0:00 0 -
-Rule Arg 1932 1939 - Nov 1 0:00 1:00 S
-Rule Arg 1940 only - Jul 1 0:00 1:00 S
+Rule Arg 1932 1939 - Nov 1 0:00 1:00 -
+Rule Arg 1940 only - Jul 1 0:00 1:00 -
Rule Arg 1941 only - Jun 15 0:00 0 -
-Rule Arg 1941 only - Oct 15 0:00 1:00 S
+Rule Arg 1941 only - Oct 15 0:00 1:00 -
Rule Arg 1943 only - Aug 1 0:00 0 -
-Rule Arg 1943 only - Oct 15 0:00 1:00 S
+Rule Arg 1943 only - Oct 15 0:00 1:00 -
Rule Arg 1946 only - Mar 1 0:00 0 -
-Rule Arg 1946 only - Oct 1 0:00 1:00 S
+Rule Arg 1946 only - Oct 1 0:00 1:00 -
Rule Arg 1963 only - Oct 1 0:00 0 -
-Rule Arg 1963 only - Dec 15 0:00 1:00 S
+Rule Arg 1963 only - Dec 15 0:00 1:00 -
Rule Arg 1964 1966 - Mar 1 0:00 0 -
-Rule Arg 1964 1966 - Oct 15 0:00 1:00 S
+Rule Arg 1964 1966 - Oct 15 0:00 1:00 -
Rule Arg 1967 only - Apr 2 0:00 0 -
-Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 S
+Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 -
Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 -
-Rule Arg 1974 only - Jan 23 0:00 1:00 S
+Rule Arg 1974 only - Jan 23 0:00 1:00 -
Rule Arg 1974 only - May 1 0:00 0 -
-Rule Arg 1988 only - Dec 1 0:00 1:00 S
+Rule Arg 1988 only - Dec 1 0:00 1:00 -
#
# From Hernan G. Otero (1995-06-26):
# These corrections were contributed by InterSoft Argentina S.A.,
@@ -76,7 +76,7 @@ Rule Arg 1988 only - Dec 1 0:00 1:00 S
# Talleres de HidrografÃa Naval Argentina
# (Argentine Naval Hydrography Institute)
Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
-Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S
+Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 -
#
# From Hernan G. Otero (1995-06-26):
# From this moment on, the law that mandated the daylight saving
@@ -87,7 +87,7 @@ Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 S
# On October 3, 1999, 0:00 local, Argentina implemented daylight savings time,
# which did not result in the switch of a time zone, as they stayed 9 hours
# from the International Date Line.
-Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 S
+Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 -
# From Paul Eggert (2007-12-28):
# DST was set to expire on March 5, not March 3, but since it was converted
# to standard time on March 3 it's more convenient for us to pretend that
@@ -190,9 +190,9 @@ Rule Arg 2000 only - Mar 3 0:00 0 -
# la modificación del huso horario, ya que 2009 nos encuentra con
# crecimiento en la producción y distribución energética."
-Rule Arg 2007 only - Dec 30 0:00 1:00 S
+Rule Arg 2007 only - Dec 30 0:00 1:00 -
Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
-Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 S
+Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
# From Mariano Absatz (2004-05-21):
# Today it was officially published that the Province of Mendoza is changing
@@ -529,7 +529,7 @@ Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31
# San Luis (SL)
Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
-Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 S
+Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
@@ -771,14 +771,14 @@ Zone America/La_Paz -4:32:36 - LMT 1890
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Decree 20,466 <http://pcdsh01.on.br/HV20466.htm> (1931-10-01)
# Decree 21,896 <http://pcdsh01.on.br/HV21896.htm> (1932-01-10)
-Rule Brazil 1931 only - Oct 3 11:00 1:00 S
+Rule Brazil 1931 only - Oct 3 11:00 1:00 -
Rule Brazil 1932 1933 - Apr 1 0:00 0 -
-Rule Brazil 1932 only - Oct 3 0:00 1:00 S
+Rule Brazil 1932 only - Oct 3 0:00 1:00 -
# Decree 23,195 <http://pcdsh01.on.br/HV23195.htm> (1933-10-10)
# revoked DST.
# Decree 27,496 <http://pcdsh01.on.br/HV27496.htm> (1949-11-24)
# Decree 27,998 <http://pcdsh01.on.br/HV27998.htm> (1950-04-13)
-Rule Brazil 1949 1952 - Dec 1 0:00 1:00 S
+Rule Brazil 1949 1952 - Dec 1 0:00 1:00 -
Rule Brazil 1950 only - Apr 16 1:00 0 -
Rule Brazil 1951 1952 - Apr 1 0:00 0 -
# Decree 32,308 <http://pcdsh01.on.br/HV32308.htm> (1953-02-24)
@@ -790,51 +790,51 @@ Rule Brazil 1953 only - Mar 1 0:00 0 -
# in SP, RJ, GB, MG, ES, due to the prolongation of the drought.
# Decree 53,071 <http://pcdsh01.on.br/HV53071.htm> (1963-12-03)
# extended the above decree to all of the national territory on 12-09.
-Rule Brazil 1963 only - Dec 9 0:00 1:00 S
+Rule Brazil 1963 only - Dec 9 0:00 1:00 -
# Decree 53,604 <http://pcdsh01.on.br/HV53604.htm> (1964-02-25)
# extended summer time by one day to 1964-03-01 00:00 (start of school).
Rule Brazil 1964 only - Mar 1 0:00 0 -
# Decree 55,639 <http://pcdsh01.on.br/HV55639.htm> (1965-01-27)
-Rule Brazil 1965 only - Jan 31 0:00 1:00 S
+Rule Brazil 1965 only - Jan 31 0:00 1:00 -
Rule Brazil 1965 only - Mar 31 0:00 0 -
# Decree 57,303 <http://pcdsh01.on.br/HV57303.htm> (1965-11-22)
-Rule Brazil 1965 only - Dec 1 0:00 1:00 S
+Rule Brazil 1965 only - Dec 1 0:00 1:00 -
# Decree 57,843 <http://pcdsh01.on.br/HV57843.htm> (1966-02-18)
Rule Brazil 1966 1968 - Mar 1 0:00 0 -
-Rule Brazil 1966 1967 - Nov 1 0:00 1:00 S
+Rule Brazil 1966 1967 - Nov 1 0:00 1:00 -
# Decree 63,429 <http://pcdsh01.on.br/HV63429.htm> (1968-10-15)
# revoked DST.
# Decree 91,698 <http://pcdsh01.on.br/HV91698.htm> (1985-09-27)
-Rule Brazil 1985 only - Nov 2 0:00 1:00 S
+Rule Brazil 1985 only - Nov 2 0:00 1:00 -
# Decree 92,310 (1986-01-21)
# Decree 92,463 (1986-03-13)
Rule Brazil 1986 only - Mar 15 0:00 0 -
# Decree 93,316 (1986-10-01)
-Rule Brazil 1986 only - Oct 25 0:00 1:00 S
+Rule Brazil 1986 only - Oct 25 0:00 1:00 -
Rule Brazil 1987 only - Feb 14 0:00 0 -
# Decree 94,922 <http://pcdsh01.on.br/HV94922.htm> (1987-09-22)
-Rule Brazil 1987 only - Oct 25 0:00 1:00 S
+Rule Brazil 1987 only - Oct 25 0:00 1:00 -
Rule Brazil 1988 only - Feb 7 0:00 0 -
# Decree 96,676 <http://pcdsh01.on.br/HV96676.htm> (1988-09-12)
# except for the states of AC, AM, PA, RR, RO, and AP (then a territory)
-Rule Brazil 1988 only - Oct 16 0:00 1:00 S
+Rule Brazil 1988 only - Oct 16 0:00 1:00 -
Rule Brazil 1989 only - Jan 29 0:00 0 -
# Decree 98,077 <http://pcdsh01.on.br/HV98077.htm> (1989-08-21)
# with the same exceptions
-Rule Brazil 1989 only - Oct 15 0:00 1:00 S
+Rule Brazil 1989 only - Oct 15 0:00 1:00 -
Rule Brazil 1990 only - Feb 11 0:00 0 -
# Decree 99,530 <http://pcdsh01.on.br/HV99530.htm> (1990-09-17)
# adopted by RS, SC, PR, SP, RJ, ES, MG, GO, MS, DF.
# Decree 99,629 (1990-10-19) adds BA, MT.
-Rule Brazil 1990 only - Oct 21 0:00 1:00 S
+Rule Brazil 1990 only - Oct 21 0:00 1:00 -
Rule Brazil 1991 only - Feb 17 0:00 0 -
# Unnumbered decree <http://pcdsh01.on.br/HV1991.htm> (1991-09-25)
# adopted by RS, SC, PR, SP, RJ, ES, MG, BA, GO, MT, MS, DF.
-Rule Brazil 1991 only - Oct 20 0:00 1:00 S
+Rule Brazil 1991 only - Oct 20 0:00 1:00 -
Rule Brazil 1992 only - Feb 9 0:00 0 -
# Unnumbered decree <http://pcdsh01.on.br/HV1992.htm> (1992-10-16)
# adopted by same states.
-Rule Brazil 1992 only - Oct 25 0:00 1:00 S
+Rule Brazil 1992 only - Oct 25 0:00 1:00 -
Rule Brazil 1993 only - Jan 31 0:00 0 -
# Decree 942 <http://pcdsh01.on.br/HV942.htm> (1993-09-28)
# adopted by same states, plus AM.
@@ -844,12 +844,12 @@ Rule Brazil 1993 only - Jan 31 0:00 0 -
# adopted by same states, plus MT and TO.
# Decree 1,674 <http://pcdsh01.on.br/HV1674.htm> (1995-10-13)
# adds AL, SE.
-Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 S
+Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 -
Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 -
Rule Brazil 1996 only - Feb 11 0:00 0 -
# Decree 2,000 <http://pcdsh01.on.br/HV2000.htm> (1996-09-04)
# adopted by same states, minus AL, SE.
-Rule Brazil 1996 only - Oct 6 0:00 1:00 S
+Rule Brazil 1996 only - Oct 6 0:00 1:00 -
Rule Brazil 1997 only - Feb 16 0:00 0 -
# From Daniel C. Sobral (1998-02-12):
# In 1997, the DS began on October 6. The stated reason was that
@@ -859,19 +859,19 @@ Rule Brazil 1997 only - Feb 16 0:00 0 -
# to help dealing with the shortages of electric power.
#
# Decree 2,317 (1997-09-04), adopted by same states.
-Rule Brazil 1997 only - Oct 6 0:00 1:00 S
+Rule Brazil 1997 only - Oct 6 0:00 1:00 -
# Decree 2,495 <http://pcdsh01.on.br/figuras/HV2495.JPG>
# (1998-02-10)
Rule Brazil 1998 only - Mar 1 0:00 0 -
# Decree 2,780 <http://pcdsh01.on.br/figuras/Hv98.jpg> (1998-09-11)
# adopted by the same states as before.
-Rule Brazil 1998 only - Oct 11 0:00 1:00 S
+Rule Brazil 1998 only - Oct 11 0:00 1:00 -
Rule Brazil 1999 only - Feb 21 0:00 0 -
# Decree 3,150 <http://pcdsh01.on.br/figuras/HV3150.gif>
# (1999-08-23) adopted by same states.
# Decree 3,188 <http://pcdsh01.on.br/DecHV99.gif> (1999-09-30)
# adds SE, AL, PB, PE, RN, CE, PI, MA and RR.
-Rule Brazil 1999 only - Oct 3 0:00 1:00 S
+Rule Brazil 1999 only - Oct 3 0:00 1:00 -
Rule Brazil 2000 only - Feb 27 0:00 0 -
# Decree 3,592 <http://pcdsh01.on.br/DEC3592.htm> (2000-09-06)
# adopted by the same states as before.
@@ -881,34 +881,34 @@ Rule Brazil 2000 only - Feb 27 0:00 0 -
# repeals DST in SE, AL, PB, RN, CE, PI and MA, effective 2000-10-22 00:00.
# Decree 3,916 <http://pcdsh01.on.br/figuras/HV3916.gif>
# (2001-09-13) reestablishes DST in AL, CE, MA, PB, PE, PI, RN, SE.
-Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 S
+Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
# Decree 4,399 (2002-10-01) repeals DST in AL, CE, MA, PB, PE, PI, RN, SE.
# 4,399 <http://www.presidencia.gov.br/CCIVIL/decreto/2002/D4399.htm>
-Rule Brazil 2002 only - Nov 3 0:00 1:00 S
+Rule Brazil 2002 only - Nov 3 0:00 1:00 -
# Decree 4,844 (2003-09-24; corrected 2003-09-26) repeals DST in BA, MT, TO.
# 4,844 <http://www.presidencia.gov.br/CCIVIL/decreto/2003/D4844.htm>
-Rule Brazil 2003 only - Oct 19 0:00 1:00 S
+Rule Brazil 2003 only - Oct 19 0:00 1:00 -
# Decree 5,223 (2004-10-01) reestablishes DST in MT.
# 5,223 <http://www.planalto.gov.br/ccivil_03/_Ato2004-2006/2004/Decreto/D5223.htm>
-Rule Brazil 2004 only - Nov 2 0:00 1:00 S
+Rule Brazil 2004 only - Nov 2 0:00 1:00 -
# Decree 5,539 <http://pcdsh01.on.br/DecHV5539.gif> (2005-09-19),
# adopted by the same states as before.
-Rule Brazil 2005 only - Oct 16 0:00 1:00 S
+Rule Brazil 2005 only - Oct 16 0:00 1:00 -
# Decree 5,920 <http://pcdsh01.on.br/DecHV5920.gif> (2006-10-03),
# adopted by the same states as before.
-Rule Brazil 2006 only - Nov 5 0:00 1:00 S
+Rule Brazil 2006 only - Nov 5 0:00 1:00 -
Rule Brazil 2007 only - Feb 25 0:00 0 -
# Decree 6,212 <http://pcdsh01.on.br/DecHV6212.gif> (2007-09-26),
# adopted by the same states as before.
-Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 S
+Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
# From Frederico A. C. Neves (2008-09-10):
# According to this decree
# http://www.planalto.gov.br/ccivil_03/_Ato2007-2010/2008/Decreto/D6558.htm
# [t]he DST period in Brazil now on will be from the 3rd Oct Sunday to the
# 3rd Feb Sunday. There is an exception on the return date when this is
# the Carnival Sunday then the return date will be the next Sunday...
-Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 S
+Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
# Decree 7,584 <http://pcdsh01.on.br/HVdecreto7584_20111013.jpg> (2011-10-13)
# added Bahia.
@@ -926,7 +926,7 @@ Rule Brazil 2016 2022 - Feb Sun>=15 0:00 0 -
# ... https://www.timeanddate.com/news/time/brazil-delays-dst-2018.html
# From Steffen Thorsen (2017-12-20):
# http://www.planalto.gov.br/ccivil_03/_ato2015-2018/2017/decreto/D9242.htm
-Rule Brazil 2018 max - Nov Sun>=1 0:00 1:00 S
+Rule Brazil 2018 max - Nov Sun>=1 0:00 1:00 -
Rule Brazil 2023 only - Feb Sun>=22 0:00 0 -
Rule Brazil 2024 2025 - Feb Sun>=15 0:00 0 -
Rule Brazil 2026 only - Feb Sun>=22 0:00 0 -
@@ -1233,28 +1233,28 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# For now, assume that they will not revert.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Chile 1927 1931 - Sep 1 0:00 1:00 S
+Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
Rule Chile 1928 1932 - Apr 1 0:00 0 -
-Rule Chile 1968 only - Nov 3 4:00u 1:00 S
+Rule Chile 1968 only - Nov 3 4:00u 1:00 -
Rule Chile 1969 only - Mar 30 3:00u 0 -
-Rule Chile 1969 only - Nov 23 4:00u 1:00 S
+Rule Chile 1969 only - Nov 23 4:00u 1:00 -
Rule Chile 1970 only - Mar 29 3:00u 0 -
Rule Chile 1971 only - Mar 14 3:00u 0 -
-Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 S
+Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 -
Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
-Rule Chile 1973 only - Sep 30 4:00u 1:00 S
-Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 S
+Rule Chile 1973 only - Sep 30 4:00u 1:00 -
+Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 -
Rule Chile 1987 only - Apr 12 3:00u 0 -
Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
-Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 S
-Rule Chile 1990 only - Sep 16 4:00u 1:00 S
+Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 -
+Rule Chile 1990 only - Sep 16 4:00u 1:00 -
Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
-Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 S
+Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 -
Rule Chile 1997 only - Mar 30 3:00u 0 -
Rule Chile 1998 only - Mar Sun>=9 3:00u 0 -
-Rule Chile 1998 only - Sep 27 4:00u 1:00 S
+Rule Chile 1998 only - Sep 27 4:00u 1:00 -
Rule Chile 1999 only - Apr 4 3:00u 0 -
-Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 S
+Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
@@ -1262,11 +1262,11 @@ Rule Chile 2008 only - Mar 30 3:00u 0 -
Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
Rule Chile 2011 only - May Sun>=2 3:00u 0 -
-Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 S
+Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
-Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 S
+Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
Rule Chile 2016 max - May Sun>=9 3:00u 0 -
-Rule Chile 2016 max - Aug Sun>=9 4:00u 1:00 S
+Rule Chile 2016 max - Aug Sun>=9 4:00u 1:00 -
# IATA SSIM anomalies: (1992-02) says 1992-03-14;
# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1331,7 +1331,7 @@ Zone Antarctica/Palmer 0 - -00 1965
# "A variation of fifteen minutes in the public clocks of Bogota is not rare."
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule CO 1992 only - May 3 0:00 1:00 S
+Rule CO 1992 only - May 3 0:00 1:00 -
Rule CO 1993 only - Apr 4 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Bogota -4:56:16 - LMT 1884 Mar 13
@@ -1391,7 +1391,7 @@ Link America/Curacao America/Kralendijk # Caribbean Netherlands
# repeated. For now, assume transitions were at 00:00 local time country-wide.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Ecuador 1992 only - Nov 28 0:00 1:00 S
+Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
Rule Ecuador 1993 only - Feb 5 0:00 0 -
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1485,18 +1485,18 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno
# until advised differently (to apply for 2012 and beyond, after the 2011
# experiment was apparently successful.)
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S
+Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
-Rule Falk 1939 only - Oct 1 0:00 1:00 S
-Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 S
+Rule Falk 1939 only - Oct 1 0:00 1:00 -
+Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 -
Rule Falk 1943 only - Jan 1 0:00 0 -
-Rule Falk 1983 only - Sep lastSun 0:00 1:00 S
+Rule Falk 1983 only - Sep lastSun 0:00 1:00 -
Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
-Rule Falk 1984 only - Sep 16 0:00 1:00 S
-Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 S
+Rule Falk 1984 only - Sep 16 0:00 1:00 -
+Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
-Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 S
+Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/Stanley -3:51:24 - LMT 1890
-3:51:24 - SMT 1912 Mar 12 # Stanley Mean Time
@@ -1531,16 +1531,16 @@ Zone America/Guyana -3:52:40 - LMT 1915 Mar # Georgetown
# adjust their clocks at 0 hour of the given dates.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Para 1975 1988 - Oct 1 0:00 1:00 S
+Rule Para 1975 1988 - Oct 1 0:00 1:00 -
Rule Para 1975 1978 - Mar 1 0:00 0 -
Rule Para 1979 1991 - Apr 1 0:00 0 -
-Rule Para 1989 only - Oct 22 0:00 1:00 S
-Rule Para 1990 only - Oct 1 0:00 1:00 S
-Rule Para 1991 only - Oct 6 0:00 1:00 S
+Rule Para 1989 only - Oct 22 0:00 1:00 -
+Rule Para 1990 only - Oct 1 0:00 1:00 -
+Rule Para 1991 only - Oct 6 0:00 1:00 -
Rule Para 1992 only - Mar 1 0:00 0 -
-Rule Para 1992 only - Oct 5 0:00 1:00 S
+Rule Para 1992 only - Oct 5 0:00 1:00 -
Rule Para 1993 only - Mar 31 0:00 0 -
-Rule Para 1993 1995 - Oct 1 0:00 1:00 S
+Rule Para 1993 1995 - Oct 1 0:00 1:00 -
Rule Para 1994 1995 - Feb lastSun 0:00 0 -
Rule Para 1996 only - Mar 1 0:00 0 -
# IATA SSIM (2000-02) says 1999-10-10; ignore this for now.
@@ -1558,7 +1558,7 @@ Rule Para 1996 only - Mar 1 0:00 0 -
# year, the time will change on the first Sunday of October; likewise, the
# clock will be set back on the first Sunday of March.
#
-Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 S
+Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 -
# IATA SSIM (1997-09) says Mar 1; go with Shanks & Pottenger.
Rule Para 1997 only - Feb lastSun 0:00 0 -
# Shanks & Pottenger say 1999-02-28; IATA SSIM (1999-02) says 1999-02-27, but
@@ -1569,7 +1569,7 @@ Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
# dst method to be from the first Sunday in September to the first Sunday in
# April.
Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
-Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S
+Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 -
#
# From Jesper Nørgaard Welen (2005-01-02):
# There are several sources that claim that Paraguay made
@@ -1578,7 +1578,7 @@ Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S
# Decree 1,867 (2004-03-05)
# From Carlos Raúl Perasso via Jesper Nørgaard Welen (2006-10-13)
# http://www.presidencia.gov.py/decretos/D1867.pdf
-Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S
+Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 -
Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
# From Carlos Raúl Perasso (2010-02-18):
# By decree number 3958 issued yesterday
@@ -1591,7 +1591,7 @@ Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
# and that on the first Sunday of the month of October, it is to be set
# forward 60 minutes, in all the territory of the Paraguayan Republic.
# ...
-Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S
+Rule Para 2010 max - Oct Sun>=1 0:00 1:00 -
Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
#
# From Steffen Thorsen (2013-03-07):
@@ -1624,16 +1624,16 @@ Zone America/Asuncion -3:50:40 - LMT 1890
# Shanks & Pottenger don't have this transition. Assume 1986 was like 1987.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
-Rule Peru 1938 only - Jan 1 0:00 1:00 S
+Rule Peru 1938 only - Jan 1 0:00 1:00 -
Rule Peru 1938 only - Apr 1 0:00 0 -
-Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 S
+Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 -
-Rule Peru 1986 1987 - Jan 1 0:00 1:00 S
+Rule Peru 1986 1987 - Jan 1 0:00 1:00 -
Rule Peru 1986 1987 - Apr 1 0:00 0 -
-Rule Peru 1990 only - Jan 1 0:00 1:00 S
+Rule Peru 1990 only - Jan 1 0:00 1:00 -
Rule Peru 1990 only - Apr 1 0:00 0 -
# IATA is ambiguous for 1993/1995; go with Shanks & Pottenger.
-Rule Peru 1994 only - Jan 1 0:00 1:00 S
+Rule Peru 1994 only - Jan 1 0:00 1:00 -
Rule Peru 1994 only - Apr 1 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Lima -5:08:12 - LMT 1890
@@ -1682,55 +1682,55 @@ Link America/Port_of_Spain America/Tortola # Virgin Islands (UK)
# From Shanks & Pottenger:
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# Whitman gives 1923 Oct 1; go with Shanks & Pottenger.
-Rule Uruguay 1923 only - Oct 2 0:00 0:30 HS
+Rule Uruguay 1923 only - Oct 2 0:00 0:30 -
Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
-Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 HS
-Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 HS
+Rule Uruguay 1924 1925 - Oct 1 0:00 0:30 -
+Rule Uruguay 1933 1935 - Oct lastSun 0:00 0:30 -
# Shanks & Pottenger give 1935 Apr 1 0:00 & 1936 Mar 30 0:00; go with Whitman.
Rule Uruguay 1934 1936 - Mar Sat>=25 23:30s 0 -
-Rule Uruguay 1936 only - Nov 1 0:00 0:30 HS
+Rule Uruguay 1936 only - Nov 1 0:00 0:30 -
Rule Uruguay 1937 1941 - Mar lastSun 0:00 0 -
# Whitman gives 1937 Oct 3; go with Shanks & Pottenger.
-Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 HS
+Rule Uruguay 1937 1940 - Oct lastSun 0:00 0:30 -
# Whitman gives 1941 Oct 24 - 1942 Mar 27, 1942 Dec 14 - 1943 Apr 13,
# and 1943 Apr 13 "to present time"; go with Shanks & Pottenger.
-Rule Uruguay 1941 only - Aug 1 0:00 0:30 HS
+Rule Uruguay 1941 only - Aug 1 0:00 0:30 -
Rule Uruguay 1942 only - Jan 1 0:00 0 -
-Rule Uruguay 1942 only - Dec 14 0:00 1:00 S
+Rule Uruguay 1942 only - Dec 14 0:00 1:00 -
Rule Uruguay 1943 only - Mar 14 0:00 0 -
-Rule Uruguay 1959 only - May 24 0:00 1:00 S
+Rule Uruguay 1959 only - May 24 0:00 1:00 -
Rule Uruguay 1959 only - Nov 15 0:00 0 -
-Rule Uruguay 1960 only - Jan 17 0:00 1:00 S
+Rule Uruguay 1960 only - Jan 17 0:00 1:00 -
Rule Uruguay 1960 only - Mar 6 0:00 0 -
-Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 S
+Rule Uruguay 1965 1967 - Apr Sun>=1 0:00 1:00 -
Rule Uruguay 1965 only - Sep 26 0:00 0 -
Rule Uruguay 1966 1967 - Oct 31 0:00 0 -
-Rule Uruguay 1968 1970 - May 27 0:00 0:30 HS
+Rule Uruguay 1968 1970 - May 27 0:00 0:30 -
Rule Uruguay 1968 1970 - Dec 2 0:00 0 -
-Rule Uruguay 1972 only - Apr 24 0:00 1:00 S
+Rule Uruguay 1972 only - Apr 24 0:00 1:00 -
Rule Uruguay 1972 only - Aug 15 0:00 0 -
-Rule Uruguay 1974 only - Mar 10 0:00 0:30 HS
-Rule Uruguay 1974 only - Dec 22 0:00 1:00 S
+Rule Uruguay 1974 only - Mar 10 0:00 0:30 -
+Rule Uruguay 1974 only - Dec 22 0:00 1:00 -
Rule Uruguay 1976 only - Oct 1 0:00 0 -
-Rule Uruguay 1977 only - Dec 4 0:00 1:00 S
+Rule Uruguay 1977 only - Dec 4 0:00 1:00 -
Rule Uruguay 1978 only - Apr 1 0:00 0 -
-Rule Uruguay 1979 only - Oct 1 0:00 1:00 S
+Rule Uruguay 1979 only - Oct 1 0:00 1:00 -
Rule Uruguay 1980 only - May 1 0:00 0 -
-Rule Uruguay 1987 only - Dec 14 0:00 1:00 S
+Rule Uruguay 1987 only - Dec 14 0:00 1:00 -
Rule Uruguay 1988 only - Mar 14 0:00 0 -
-Rule Uruguay 1988 only - Dec 11 0:00 1:00 S
+Rule Uruguay 1988 only - Dec 11 0:00 1:00 -
Rule Uruguay 1989 only - Mar 12 0:00 0 -
-Rule Uruguay 1989 only - Oct 29 0:00 1:00 S
+Rule Uruguay 1989 only - Oct 29 0:00 1:00 -
# Shanks & Pottenger say no DST was observed in 1990/1 and 1991/2,
# and that 1992/3's DST was from 10-25 to 03-01. Go with IATA.
Rule Uruguay 1990 1992 - Mar Sun>=1 0:00 0 -
-Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 S
-Rule Uruguay 1992 only - Oct 18 0:00 1:00 S
+Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 -
+Rule Uruguay 1992 only - Oct 18 0:00 1:00 -
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....
# http://www.presidencia.gub.uy/decretos/2004091502.htm
-Rule Uruguay 2004 only - Sep 19 0:00 1:00 S
+Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
# From Steffen Thorsen (2005-03-11):
# Uruguay's DST was scheduled to end on Sunday, 2005-03-13, but in order to
# save energy ... it was postponed two weeks....
@@ -1740,7 +1740,7 @@ Rule Uruguay 2005 only - Mar 27 2:00 0 -
# http://www.presidencia.gub.uy/_Web/decretos/2005/09/CM%20119_09%2009%202005…
# This means that from 2005-10-09 at 02:00 local time, until 2006-03-12 at
# 02:00 local time, official time in Uruguay will be at GMT -2.
-Rule Uruguay 2005 only - Oct 9 2:00 1:00 S
+Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
Rule Uruguay 2006 only - Mar 12 2:00 0 -
# From Jesper Nørgaard Welen (2006-09-06):
# http://www.presidencia.gub.uy/_web/decretos/2006/09/CM%20210_08%2006%202006…
@@ -1755,7 +1755,7 @@ Rule Uruguay 2006 only - Mar 12 2:00 0 -
# From Pablo Camargo (2015-07-13):
# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf
# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04]
-Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 S
+Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
Rule Uruguay 2007 2015 - Mar Sun>=8 2:00 0 -
# This Zone can be simplified once we assume zic %z.
--
2.14.3
1
0
* africa (Ghana): Add commentary about what little is known about
time near Accra from 1919 through 1942. Every source seems to
differ. For now, leave the data alone. It would be nice if
someone could get to the bottom of this.
---
africa | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/africa b/africa
index 02115ad..6e86d21 100644
--- a/africa
+++ b/africa
@@ -370,13 +370,32 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
# See Africa/Abidjan.
# Ghana
-# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
+
+# From Paul Eggert (2019-01-30):
# Whitman says DST was observed from 1931 to "the present";
-# Shanks & Pottenger say 1936 to 1942;
-# and September 1 to January 1 is given by:
-# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book,
-# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii.
-# For lack of better info, assume DST was observed from 1920 to 1942.
+# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST,
+# with transitions on 09-01 and 12-31 at 00:00.
+# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold
+# Coast. Report for 1919. (March 1921), OCLC 784024077
+# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530…
+# lists the Determination of the Time Ordinance, 1919, No. 18,
+# "to advance the time observed locally by the space of twenty minutes
+# during the last four months of each year; the object in view being
+# to extend during those months the period of daylight-time available
+# for evening recreation after office hours."
+# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33,
+# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich
+# time its legal time and simultaneously legalized a summer time of
+# UTC - 00:20 minutes from March to October."; a footnote lists
+# the ordinance as being dated 1919-11-24.
+# The Crown Colonist, Volume 12 (1942), p 176, says "the Government
+# intend advancing Gold Coast time half an hour ahead of G.M.T.
+# The actual date of the alteration has not yet been announced."
+# These sources are incomplete and contradictory. Possibly what is
+# now Ghana observed different DST regimes in different years. For
+# lack of better info, use Shanks except treat the minus sign as a
+# typo, and assume DST started in 1920 not 1936.
+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST
Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
--
2.14.3
2
2