]> xenbits.xensource.com Git - people/royger/freebsd.git/commitdiff
contrib/tzdata: import tzdata 2022a
authorPhilip Paeps <philip@FreeBSD.org>
Tue, 22 Mar 2022 15:54:06 +0000 (15:54 +0000)
committerPhilip Paeps <philip@FreeBSD.org>
Tue, 22 Mar 2022 15:54:06 +0000 (15:54 +0000)
Merge commit '971fa603f2bdf16273135a00ff16c5585520c53f'

Changes: https://github.com/eggert/tz/blob/2022a/NEWS

With this merge, we return to our previous long-standing practice of
distributing the IANA Time Zone Database unmodified.

Releases of tzdb since 2021b have merged some time zones where clocks
have agreed since 1970.  The overwhelming majority of users will not be
affected by this change.  A port of the newly created global-tz fork of
the IANA Time Zone database (misc/global-tz) is available for users who
need more granular pre-1970 time zone history.

Approved by: re (gjb)

(cherry picked from commit 8ea5af2b77f2b43c250cacb257f42c0a54d644c4)
(cherry picked from commit 5dbd160076c09b0a3c7b175b506a57bd8b71f22a)

21 files changed:
contrib/tzdata/CONTRIBUTING
contrib/tzdata/Makefile
contrib/tzdata/NEWS
contrib/tzdata/SECURITY [new file with mode: 0644]
contrib/tzdata/africa
contrib/tzdata/antarctica
contrib/tzdata/asia
contrib/tzdata/australasia
contrib/tzdata/backward
contrib/tzdata/backzone
contrib/tzdata/checktab.awk
contrib/tzdata/europe
contrib/tzdata/leap-seconds.list
contrib/tzdata/leapseconds
contrib/tzdata/northamerica
contrib/tzdata/southamerica
contrib/tzdata/theory.html
contrib/tzdata/version
contrib/tzdata/ziguard.awk
contrib/tzdata/zone.tab
contrib/tzdata/zone1970.tab

index 01336fce7f7454a76344d787db82881bb14df4e1..4c0f56a50265f6705c1243e8d1f465e546059cee 100644 (file)
@@ -1,50 +1,58 @@
-Contributing to the tz code and data
+# Contributing to the tz code and data
+
+Please do not create issues or pull requests on GitHub, as the
+proper procedure for proposing and distributing patches is via
+email as described below.
 
 The time zone database is by no means authoritative: governments
 change timekeeping rules erratically and sometimes with little
 warning, the data entries do not cover all of civil time before
 1970, and undoubtedly errors remain in the code and data.  Feel
 free to fill gaps or fix mistakes, and please email improvements
-to tz@iana.org for use in the future.  In your email, please give
+to <tz@iana.org> for use in the future.  In your email, please give
 reliable sources that reviewers can check.
 
------
-
-Developers can contribute technical changes to the source code and
-data as follows.
+## Contributing technical changes
 
 To email small changes, please run a POSIX shell command like
 'diff -u old/europe new/europe >myfix.patch', and attach
-myfix.patch to the email.
+'myfix.patch' to the email.
 
 For more-elaborate or possibly-controversial changes,
 such as renaming, adding or removing zones, please read
-<https://www.iana.org/time-zones/repository/theory.html> or the file
-theory.html.  It is also good to browse the mailing list archives
+"Theory and pragmatics of the tz code and data"
+<https://www.iana.org/time-zones/repository/theory.html>.
+It is also good to browse the mailing list archives
 <https://mm.icann.org/pipermail/tz/> for examples of patches that tend
 to work well.  Additions to data should contain commentary citing
-reliable sources as justification.  Citations should use https: URLs
+reliable sources as justification.  Citations should use "https:" URLs
 if available.
 
-Please submit changes against either the latest release in
-<https://www.iana.org/time-zones> or the master branch of the development
-repository.  The latter is preferred.  If you use Git the following
-workflow may be helpful:
+For changes that fix sensitive security-related bugs, please see the
+distribution's 'SECURITY' file.
+
+Please submit changes against either the latest release
+<https://www.iana.org/time-zones> or the main branch of the development
+repository.  The latter is preferred.
+
+## Sample Git workflow for developing contributions
+
+If you use Git the following workflow may be helpful:
 
   * Copy the development repository.
 
-      git clone https://github.com/eggert/tz.git
-      cd tz
+        git clone https://github.com/eggert/tz.git
+        cd tz
 
-  * Get current with the master branch.
+  * Get current with the main branch.
 
-      git checkout master
-      git pull
+        git checkout main
+        git pull
 
   * Switch to a new branch for the changes.  Choose a different
     branch name for each change set.
 
-      git checkout -b mybranch
+        git checkout -b mybranch
 
   * Sleuth by using 'git blame'.  For example, when fixing data for
     Africa/Sao_Tome, if the command 'git blame africa' outputs a line
@@ -57,36 +65,33 @@ workflow may be helpful:
 
   * Debug the changes, e.g.:
 
-      make check
-      make install
-      ./zdump -v America/Los_Angeles
+        make check
+        make install
+        ./zdump -v America/Los_Angeles
 
   * For each separable change, commit it in the new branch, e.g.:
 
-      git add northamerica
-      git commit
+        git add northamerica
+        git commit
 
     See recent 'git log' output for the commit-message style.
 
-  * Create patch files 0001-*, 0002-*, ...
+  * Create patch files 0001-..., 0002-..., ...
 
-      git format-patch master
+        git format-patch main
 
-  * After reviewing the patch files, send the patches to tz@iana.org
+  * After reviewing the patch files, send the patches to <tz@iana.org>
     for others to review.
 
-      git send-email master
+        git send-email main
 
     For an archived example of such an email, see
+    "[PROPOSED] Fix off-by-1 error for Jamaica and T&C before 1913"
     <https://mm.icann.org/pipermail/tz/2018-February/026122.html>.
 
-  * Start anew by getting current with the master branch again
+  * Start anew by getting current with the main branch again
     (the second step above).
 
-Please do not create issues or pull requests on GitHub, as the
-proper procedure for proposing and distributing patches is via
-email as illustrated above.
-
 -----
 
 This file is in the public domain.
index 1136af9298f1cbf6ce804b0751565c1d02d0dc3b..a9a989ecf3943a1c98c2691cdf698ed0f843af72 100644 (file)
@@ -45,9 +45,9 @@ LOCALTIME=    GMT
 #
 # Any other value for POSIXRULES is obsolete and should not be relied on, as:
 # * It does not work correctly in popular implementations such as GNU/Linux.
-# * It does not work in the tzdb implementation for timestamps after 2037.
-# * It is incompatible with 'zic -b slim' if POSIXRULES specifies transitions
-#   at standard time or UT rather than at local time.
+# * It does not work even in tzcode, except for historical timestamps
+#   that precede the last explicit transition in the POSIXRULES file.
+#   Hence it typically does not work for current and future timestamps.
 # In short, software should avoid ruleless settings like TZ='EET-2EEST'
 # and so should not depend on the value of POSIXRULES.
 #
@@ -122,8 +122,8 @@ LIBDIR = $(TOPDIR)/$(USRDIR)/lib
 
 # Types to try, as an alternative to time_t.
 TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL)
-TIME_T_ALTERNATIVES_HEAD = int64_t
-TIME_T_ALTERNATIVES_TAIL = int32_t uint32_t uint64_t
+TIME_T_ALTERNATIVES_HEAD = int_least64_t
+TIME_T_ALTERNATIVES_TAIL = int_least32_t uint_least32_t uint_least64_t
 
 # What kind of TZif data files to generate.  (TZif is the binary time
 # zone data format that zic generates; see Internet RFC 8536.)
@@ -152,8 +152,10 @@ REDO=              posix_right
 # The EXPIRES_LINE value matters only if REDO's value contains "right".
 # If you change EXPIRES_LINE, remove the leapseconds file before running "make".
 # zic's support for the Expires line was introduced in tzdb 2020a,
-# and EXPIRES_LINE defaults to 0 for now so that the leapseconds file
-# can be given to older zic implementations.
+# and was modified in tzdb 2021b to generate version 4 TZif files.
+# EXPIRES_LINE defaults to 0 for now so that the leapseconds file
+# can be given to pre-2020a zic implementations and so that TZif files
+# built by newer zic implementations can be read by pre-2021b libraries.
 EXPIRES_LINE=  0
 
 # To install data in text form that has all the information of the TZif data,
@@ -210,6 +212,7 @@ LDLIBS=
 #  -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
 #  -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
 #      localtime_rz can make zdump significantly faster, but is nonstandard.
+#  -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure.
 #  -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
 #      functions like 'link' or variables like 'tzname' required by POSIX
 #  -DHAVE_SNPRINTF=0 if your system lacks the snprintf function
@@ -220,7 +223,6 @@ LDLIBS=
 #  -DHAVE_STRTOLL=0 if your system lacks the strtoll function
 #  -DHAVE_SYMLINK=0 if your system lacks the symlink function
 #  -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>
-#  -DHAVE_SYS_WAIT_H=0 if your compiler lacks a <sys/wait.h>
 #  -DHAVE_TZSET=0 if your system lacks a tzset function
 #  -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>
 #  -Dlocale_t=XXX if your system uses XXX instead of locale_t
@@ -257,22 +259,26 @@ LDLIBS=
 GCC_INSTRUMENT = \
   -fsanitize=undefined -fsanitize-address-use-after-scope \
   -fsanitize-undefined-trap-on-error -fstack-protector
+# Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow.
 GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
   $(GCC_INSTRUMENT) \
   -Wall -Wextra \
   -Walloc-size-larger-than=100000 -Warray-bounds=2 \
   -Wbad-function-cast -Wcast-align=strict -Wdate-time \
   -Wdeclaration-after-statement -Wdouble-promotion \
+  -Wduplicated-branches -Wduplicated-cond \
   -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
-  -Winit-self -Wjump-misses-init -Wlogical-op \
+  -Winit-self -Wlogical-op \
   -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
+  -Wnull-dereference \
   -Wold-style-definition -Woverlength-strings -Wpointer-arith \
-  -Wshadow -Wshift-overflow=2 -Wstrict-prototypes -Wstringop-overflow=4 \
+  -Wshadow -Wshift-overflow=2 -Wstrict-overflow \
+  -Wstrict-prototypes -Wstringop-overflow=4 \
   -Wstringop-truncation -Wsuggest-attribute=cold \
   -Wsuggest-attribute=const -Wsuggest-attribute=format \
   -Wsuggest-attribute=malloc \
   -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
-  -Wtrampolines -Wundef -Wuninitialized -Wunused \
+  -Wtrampolines -Wundef -Wuninitialized -Wunused-macros \
   -Wvariadic-macros -Wvla -Wwrite-strings \
   -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
   -Wno-type-limits -Wno-unused-parameter
@@ -393,9 +399,10 @@ ZFLAGS=
 ZIC_INSTALL=   $(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS)
 
 # The name of a Posix-compliant 'awk' on your system.
-# Older 'mawk' versions, such as the 'mawk' in Ubuntu 16.04, might dump core;
-# on Ubuntu you can work around this with
-#      AWK=            gawk
+# mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work.
+# Also, it is better (though not essential) if 'awk' supports UTF-8,
+# and unfortunately mawk and busybox awk do not support UTF-8.
+# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems.
 AWK=           awk
 
 # The full path name of a Posix-compliant shell, preferably one that supports
@@ -460,7 +467,9 @@ OK_LINE=    '^'$(OK_CHAR)'*$$'
 
 # Flags to give 'tar' when making a distribution.
 # Try to use flags appropriate for GNU tar.
-GNUTARFLAGS= --numeric-owner --owner=0 --group=0 --mode=go+u,go-w --sort=name
+GNUTARFLAGS= --format=pax --pax-option='delete=atime,delete=ctime' \
+  --numeric-owner --owner=0 --group=0 \
+  --mode=go+u,go-w --sort=name
 TARFLAGS=      `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
                 then echo $(GNUTARFLAGS); \
                 else :; \
@@ -498,7 +507,7 @@ MANTXTS=    newctime.3.txt newstrftime.3.txt newtzset.3.txt \
                        tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
                        date.1.txt
 COMMON=                calendars CONTRIBUTING LICENSE Makefile \
-                       NEWS README theory.html version
+                       NEWS README SECURITY theory.html version
 WEB_PAGES=     tz-art.html tz-how-to.html tz-link.html
 CHECK_WEB_PAGES=check_theory.html check_tz-art.html \
                        check_tz-how-to.html check_tz-link.html
@@ -523,7 +532,7 @@ TZS_YEAR=   2050
 TZS_CUTOFF_FLAG=       -c $(TZS_YEAR)
 TZS=           to$(TZS_YEAR).tzs
 TZS_NEW=       to$(TZS_YEAR)new.tzs
-TZS_DEPS=      $(PRIMARY_YDATA) asctime.c localtime.c \
+TZS_DEPS=      $(YDATA) asctime.c localtime.c \
                        private.h tzfile.h zdump.c zic.c
 # EIGHT_YARDS is just a yard short of the whole ENCHILADA.
 EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi
@@ -533,7 +542,7 @@ ENCHILADA = $(EIGHT_YARDS) $(TZS)
 # This list is not the same as the output of 'git ls-files', since
 # .gitignore is not distributed.
 VERSION_DEPS= \
-               calendars CONTRIBUTING LICENSE Makefile NEWS README \
+               calendars CONTRIBUTING LICENSE Makefile NEWS README SECURITY \
                africa antarctica asctime.c asia australasia \
                backward backzone \
                checklinks.awk checktab.awk \
@@ -736,7 +745,7 @@ date:               $(DATEOBJS)
 tzselect:      tzselect.ksh version
                VERSION=`cat version` && sed \
                        -e 's|#!/bin/bash|#!$(KSHELL)|g' \
-                       -e 's|AWK=[^}]*|AWK=$(AWK)|g' \
+                       -e 's|AWK=[^}]*|AWK='\''$(AWK)'\''|g' \
                        -e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \
                        -e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
                        -e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
@@ -757,7 +766,7 @@ check_character_set: $(ENCHILADA)
                sharp='#' && \
                ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
                        $(MISC) $(SOURCES) $(WEB_PAGES) \
-                       CONTRIBUTING LICENSE README \
+                       CONTRIBUTING LICENSE README SECURITY \
                        version tzdata.zi && \
                ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \
                        Makefile && \
@@ -796,9 +805,10 @@ check_links:       checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
                $(AWK) -f checklinks.awk tzdata.zi
                touch $@
 
-check_tables:  checktab.awk $(PRIMARY_YDATA) $(ZONETABLES)
+check_tables:  checktab.awk $(YDATA) backward $(ZONETABLES)
                for tab in $(ZONETABLES); do \
-                 $(AWK) -f checktab.awk -v zone_table=$$tab $(PRIMARY_YDATA) \
+                 test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \
+                 $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \
                    || exit; \
                done
                touch $@
@@ -952,6 +962,12 @@ check_public: $(VERSION_DEPS)
                  public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \
                done
                public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK)
+               :
+               : Also check 'backzone' syntax.
+               rm public.dir/main.zi
+               cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi
+               public.dir/zic -d public.dir/zoneinfo main.zi
+               :
                rm -fr public.dir
                touch $@
 
@@ -964,7 +980,7 @@ $(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
                mkdir $@.dir
                ln $(VERSION_DEPS) $@.dir
                case $@ in \
-                 int32_t) range=-2147483648,2147483648;; \
+                 int*32_t) range=-2147483648,2147483648;; \
                  u*) range=0,4294967296;; \
                  *) range=-4294967296,4294967296;; \
                esac && \
index a60847beae8190a30e50d4e481928b94c7df16bb..ae44be29ff58423edcbfe594b2f9b48e9aada492 100644 (file)
@@ -1,5 +1,351 @@
 News for the tz database
 
+Release 2022a - 2022-03-15 23:02:01 -0700
+
+  Briefly:
+    Palestine will spring forward on 2022-03-27, not -03-26.
+    zdump -v now outputs better failure indications.
+    Bug fixes for code that reads corrupted TZif data.
+
+  Changes to future timestamps
+
+    Palestine will spring forward on 2022-03-27, not 2022-03-26.
+    (Thanks to Heba Hamad.)  Predict future transitions for first
+    Sunday >= March 25.  Additionally, predict fallbacks to be the first
+    Friday on or after October 23, not October's last Friday, to be more
+    consistent with recent practice.  The first differing fallback
+    prediction is on 2025-10-24, not 2025-10-31.
+
+  Changes to past timestamps
+
+    From 1992 through spring 1996, Ukraine's DST transitions were at
+    02:00 standard time, not at 01:00 UTC.  (Thanks to Alois Treindl.)
+
+    Chile's Santiago Mean Time and its LMT precursor have been adjusted
+    eastward by 1 second to align with past and present law.
+
+  Changes to commentary
+
+    Add several references for Chile's 1946/1947 transitions, some of
+    which only affected portions of the country.
+
+  Changes to code
+
+    Fix bug when mktime gets confused by truncated TZif files with
+    unspecified local time.  (Problem reported by Almaz Mingaleev.)
+
+    Fix bug when 32-bit time_t code reads malformed 64-bit TZif data.
+    (Problem reported by Christos Zoulas.)
+
+    When reading a version 2 or later TZif file, the TZif reader now
+    validates the version 1 header and data block only enough to skip
+    over them, as recommended by RFC 8536 section 4.  Also, the TZif
+    reader no longer mistakenly attempts to parse a version 1 TZIf
+    file header as a TZ string.
+
+    zdump -v now outputs "(localtime failed)" and "(gmtime failed)"
+    when local time and UT cannot be determined for a timestamp.
+
+  Changes to build procedure
+
+    Distribution tarballs now use standard POSIX.1-1988 ustar format
+    instead of GNU format.  Although the formats are almost identical
+    for these tarballs, ustar headers' magic fields contain "ustar"
+    instead of "ustar ", and their version fields contain "00" instead
+    of " ".  The two formats are planned to diverge more significantly
+    for tzdb releases after 2242-03-16 12:56:31 UTC, when the ustar
+    format becomes obsolete and the tarballs switch to pax format, an
+    extension of ustar.  For details about these formats, please see
+    "pax - portable archive interchange", IEEE Std 1003.1-2017,
+    <https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13>.
+
+
+Release 2021e - 2021-10-21 18:41:00 -0700
+
+  Changes to future timestamps
+
+    Palestine will fall back 10-29 (not 10-30) at 01:00.
+    (Thanks to P Chan and Heba Hemad.)
+
+
+Release 2021d - 2021-10-15 13:48:18 -0700
+
+  Briefly:
+    Fiji suspends DST for the 2021/2022 season.
+    'zic -r' marks unspecified timestamps with "-00".
+
+  Changes to future timestamps
+
+    Fiji will suspend observance of DST for the 2021/2022 season.
+    Assume for now that it will return next year.  (Thanks to Jashneel
+    Kumar and P Chan.)
+
+  Changes to code
+
+    'zic -r' now uses "-00" time zone abbreviations for intervals
+    with UT offsets that are unspecified due to -r truncation.
+    This implements a change in draft Internet RFC 8536bis.
+
+
+Release 2021c - 2021-10-01 14:21:49 -0700
+
+  Briefly:
+    Revert most 2021b changes to 'backward'.
+    Fix 'zic -b fat' bug in pre-1970 32-bit data.
+    Fix two Link line typos.
+    Distribute SECURITY file.
+
+    This release is intended as a bugfix release, to fix compatibility
+    problems and typos reported since 2021b was released.
+
+  Changes to Link directives
+
+    Revert almost all of 2021b's changes to the 'backward' file,
+    by moving Link directives back to where they were in 2021a.
+    Although 'zic' doesn't care which source file contains a Link
+    directive, some downstream uses ran into trouble with the move.
+    (Problem reported by Stephen Colebourne for Joda-Time.)
+
+    Fix typo that linked Atlantic/Jan_Mayen to the wrong location
+    (problem reported by Chris Walton).
+
+    Fix 'backzone' typo that linked America/Virgin to the wrong
+    location (problem reported by Michael Deckers).
+
+  Changes to code
+
+    Fix a bug in 'zic -b fat' that caused old timestamps to be
+    mishandled in 32-bit-only readers (problem reported by Daniel
+    Fischer).
+
+  Changes to documentation
+
+    Distribute the SECURITY file (problem reported by Andreas Radke).
+
+
+Release 2021b - 2021-09-24 16:23:00 -0700
+
+  Briefly:
+    Jordan now starts DST on February's last Thursday.
+    Samoa no longer observes DST.
+    Merge more location-based Zones whose timestamps agree since 1970.
+    Move some backward-compatibility links to 'backward'.
+    Rename Pacific/Enderbury to Pacific/Kanton.
+    Correct many pre-1993 transitions in Malawi, Portugal, etc.
+    zic now creates each output file or link atomically.
+    zic -L no longer omits the POSIX TZ string in its output.
+    zic fixes for truncation and leap second table expiration.
+    zic now follows POSIX for TZ strings using all-year DST.
+    Fix some localtime crashes and bugs in obscure cases.
+    zdump -v now outputs more-useful boundary cases.
+    tzfile.5 better matches a draft successor to RFC 8536.
+    A new file SECURITY.
+
+    This release is prompted by recent announcements by Jordan and Samoa.
+    It incorporates many other changes that had accumulated since 2021a.
+    However, it omits most proposed changes that merged all Zones
+    agreeing since 1970, as concerns were raised about doing too many of
+    these changes at once.  It does keeps some of these changes in the
+    interest of making tzdb more equitable one step at a time; see
+    "Merge more location-based Zones" below.
+
+  Changes to future timestamps
+
+    Jordan now starts DST on February's last Thursday.
+    (Thanks to Steffen Thorsen.)
+
+    Samoa no longer observes DST.  (Thanks to Geoffrey D. Bennett.)
+
+  Changes to zone name
+
+    Rename Pacific/Enderbury to Pacific/Kanton.  When we added
+    Enderbury in 1993, we did not know that it is uninhabited and that
+    Kanton (population two dozen) is the only inhabited location in
+    that timezone.  The old name is now a backward-compatility link.
+
+  Changes to past timestamps
+
+    Correct many pre-1993 transitions, fixing entries originally
+    derived from Shanks, Whitman, and Mundell.  The fixes include:
+      - Barbados: standard time was introduced in 1911, not 1932; and
+       DST was observed in 1942-1944
+      - Cook Islands: In 1899 they switched from east to west of GMT,
+       celebrating Christmas for two days.  They (and Niue) switched
+       to standard time in 1952, not 1901.
+      - Guyana: corrected LMT for Georgetown; the introduction of
+       standard time in 1911, not 1915; and corrections to 1975 and
+       1992 transitions
+      - Kanton: uninhabited before 1937-08-31
+      - Niue: only observed -11:20 from 1952 through 1964, then went to
+        -11 instead of -11:30
+      - Portugal: DST was observed in 1950
+      - Tonga: corrected LMT; the introduction of standard time in 1945,
+        not 1901; and corrections to the transition from +12:20 to +13
+        in 1961, not 1941
+    Additional fixes to entries in the 'backzone' file include:
+      - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09
+      - The Gambia: 1933 and 1942 transitions
+      - Malawi: several 1911 through 1925 transitions
+      - Sierra Leone: several 1913 through 1941 transitions, and DST
+       was NOT observed in 1957 through 1962
+    (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and
+    Alois Treindl.)
+
+    Merge more location-based Zones whose timestamps agree since 1970,
+    as pre-1970 timestamps are out of scope.  This is part of a
+    process that has been ongoing since 2013.  This does not affect
+    post-1970 timestamps, and timezone historians who build with 'make
+    PACKRATDATA=backzone' should see no changes to pre-1970 timestamps.
+    When merging, keep the most-populous location's data, and move
+    data for other locations to 'backzone' with a backward
+    link in 'backward'.  For example, move America/Creston data to
+    'backzone' with a link in 'backward' from America/Phoenix because
+    the two timezones' timestamps agree since 1970; this change
+    affects some pre-1968 timestamps in America/Creston because
+    Creston and Phoenix disagreed before 1968.  The affected Zones
+    are Africa/Accra, America/Atikokan, America/Blanc-Sablon,
+    America/Creston, America/Curacao, America/Nassau,
+    America/Port_of_Spain, Antarctica/DumontDUrville, and
+    Antarctica/Syowa.
+
+  Changes to maintenance procedure
+
+    The new file SECURITY covers how to report security-related bugs.
+
+    Several backward-compatibility links have been moved to the
+    'backward' file.  These links, which range from Africa/Addis_Ababa
+    to Pacific/Saipan, are only for compatibility with now-obsolete
+    guidelines suggesting an entry for every ISO 3166 code.
+    The intercontinental convenience links Asia/Istanbul and
+    Europe/Nicosia have also been moved to 'backward'.
+
+  Changes to code
+
+    zic now creates each output file or link atomically,
+    possibly by creating a temporary file and then renaming it.
+    This avoids races where a TZ setting would temporarily stop
+    working while zic was installing a replacement file or link.
+
+    zic -L no longer omits the POSIX TZ string in its output.
+    Starting with 2020a, zic -L truncated its output according to the
+    "Expires" directive or "#expires" comment in the leapseconds file.
+    The resulting TZif files omitted daylight saving transitions after
+    the leap second table expired, which led to far less-accurate
+    predictions of times after the expiry.  Although future timestamps
+    cannot be converted accurately in the presence of leap seconds, it
+    is more accurate to convert near-future timestamps with a few
+    seconds error than with an hour error, so zic -L no longer
+    truncates output in this way.
+
+    Instead, when zic -L is given the "Expires" directive, it now
+    outputs the expiration by appending a no-change entry to the leap
+    second table.  Although this should work well with most TZif
+    readers, it does not conform to Internet RFC 8536 and some pickier
+    clients (including tzdb 2017c through 2021a) reject it, so
+    "Expires" directives are currently disabled by default.  To enable
+    them, set the EXPIRES_LINE Makefile variable.  If a TZif file uses
+    this new feature it is marked with a new TZif version number 4,
+    a format intended to be documented in a successor to RFC 8536.
+
+    zic -L LEAPFILE -r @LO no longer generates an invalid TZif file
+    that omits leap second information for the range LO..B when LO
+    falls between two leap seconds A and B.  Instead, it generates a
+    TZif version 4 file that represents the previously-missing
+    information.
+
+    The TZif reader now allows the leap second table to begin with a
+    correction other than -1 or +1, and to contain adjacent
+    transitions with equal corrections.  This supports TZif version 4.
+
+    The TZif reader now lets leap seconds occur less than 28 days
+    apart.  This supports possible future TZif extensions.
+
+    Fix bug that caused 'localtime' etc. to crash when TZ was
+    set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does
+    not conform to POSIX but does conform to Internet RFC 8536.
+
+    Fix another bug that caused 'localtime' etc. to crash when TZ was
+    set to a POSIX-conforming but unusual TZ string like
+    "EST5EDT4,0/0,J365/0", where almost all the year is DST.
+
+    Fix yet another bug that caused 'localtime' etc. to mishandle slim
+    TZif files containing leap seconds after the last explicit
+    transition in the table, or when handling far-future timestamps
+    in slim TZif files lacking leap seconds.
+
+    Fix localtime misbehavior involving positive leap seconds.
+    This change affects only behavior for "right" system time,
+    which contains leap seconds, and only if the UT offset is
+    not a multiple of 60 seconds when a positive leap second occurs.
+    (No such timezone exists in tzdb, luckily.)  Without the fix,
+    the timestamp was ambiguous during a positive leap second.
+    With the fix, any seconds occurring after a positive leap second
+    and within the same localtime minute are counted through 60, not
+    through 59; their UT offset (tm_gmtoff) is the same as before.
+    Here is how the fix affects timestamps in a timezone with UT
+    offset +01:23:45 (5025 seconds) and with a positive leap second at
+    1972-06-30 23:59:60 UTC (78796800):
+
+       time_t    without the fix      with the fix
+       78796800  1972-07-01 01:23:45  1972-07-01 01:23:45 (leap second)
+       78796801  1972-07-01 01:23:45  1972-07-01 01:23:46
+       ...
+       78796815  1972-07-01 01:23:59  1972-07-01 01:23:60
+       78796816  1972-07-01 01:24:00  1972-07-01 01:24:00
+
+    Fix an unlikely bug that caused 'localtime' etc. to misbehave if
+    civil time changes a few seconds before time_t wraps around, when
+    leap seconds are enabled.
+
+    Fix bug in zic -r; in some cases, the dummy time type after the
+    last time transition disagreed with the TZ string, contrary to
+    Internet RFC 8563 section 3.3.
+
+    Fix a bug with 'zic -r @X' when X is a negative leap second that
+    has a nonnegative correction.  Without the fix, the output file
+    was truncated so that X appeared to be a positive leap second.
+    Fix a similar, even-less-likely bug when truncating at a positive
+    leap second that has a nonpositive correction.
+
+    zic -r now reports an error if given rolling leap seconds, as this
+    usage has never generally worked and is evidently unused.
+
+    zic now generates a POSIX-conforming TZ string for TZif files
+    where all-year DST is predicted for the indefinite future.
+    For example, for all-year Eastern Daylight Time, zic now generates
+    "XXX3EDT4,0/0,J365/23" where it previously generated
+    "EST5EDT,0/0,J365/25" or "".  (Thanks to Michael Deckers for
+    noting the possibility of POSIX conformance.)
+
+    zic.c no longer requires sys/wait.h (thanks to spazmodius for
+    noting it wasn't needed).
+
+    When reading slim TZif files, zdump no longer mishandles leap
+    seconds on the rare platforms where time_t counts leap seconds,
+    fixing a bug introduced in 2014g.
+
+    zdump -v now outputs timestamps at boundaries of what localtime
+    and gmtime can represent, instead of the less-useful timestamps
+    one day after the minimum and one day before the maximum.
+    (Thanks to Arthur David Olson for prototype code, and to Manuela
+    Friedrich for debugging help.)
+
+    zdump's -c and -t options are now consistently inclusive for the
+    lower time bound and exclusive for the upper.  Formerly they were
+    inconsistent.  (Confusion noted by Martin Burnicki.)
+
+  Changes to build procedure
+
+    You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to
+    non-POSIX hosts where malloc doesn't set errno.
+    (Problem reported by Jan Engelhardt.)
+
+  Changes to documentation
+
+    tzfile.5 better matches a draft successor to RFC 8536
+    <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>.
+
+
 Release 2021a - 2021-01-24 10:54:57 -0800
 
   Changes to future timestamps
@@ -31,7 +377,7 @@ Release 2020e - 2020-12-22 15:14:34 -0800
     Correct many pre-1986 transitions, fixing entries originally
     derived from Shanks.  The fixes include:
       - Australia: several 1917 through 1971 transitions
-      - Bahamas: several 1941 through 1945 transitions
+      - The Bahamas: several 1941 through 1945 transitions
       - Bermuda: several 1917 through 1956 transitions
       - Belize: several 1942 through 1968 transitions
       - Ghana: several 1915 through 1956 transitions
@@ -287,13 +633,13 @@ Release 2019c - 2019-09-11 08:59:48 -0700
     probably wrong.)
 
     Fix several errors in pre-1970 transitions in Perry County, IN.
-    (Thanks to Alois Triendl for pointing out the 1967/9 errors.)
+    (Thanks to Alois Treindl for pointing out the 1967/9 errors.)
 
     Edmonton did not observe DST in 1967 or 1969.  In 1946 Vancouver
     ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not
     10-06.  In 1945 Königsberg (now Kaliningrad) switched from +01/+02
     to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated
-    EET/EEST, not CET/CEST.  (Thanks to Alois Triendl.)  In 1946
+    EET/EEST, not CET/CEST.  (Thanks to Alois Treindl.)  In 1946
     Königsberg switched to +03 on 04-07 not 01-01.
 
     In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not
@@ -825,8 +1171,8 @@ Release 2018d - 2018-03-22 07:05:46 -0700
     Institute in Montevideo.
     (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.)
 
-    Enderbury and Kiritimati skipped New Year's Eve 1994, not
-    New Year's Day 1995.  (Thanks to Kerry Shetline.)
+    East Kiribati skipped New Year's Eve 1994, not New Year's Day 1995.
+    (Thanks to Kerry Shetline.)
 
     Fix the 1912-01-01 transition for Portugal and its colonies.
     This transition was at 00:00 according to the new UT offset, not
diff --git a/contrib/tzdata/SECURITY b/contrib/tzdata/SECURITY
new file mode 100644 (file)
index 0000000..40128bc
--- /dev/null
@@ -0,0 +1,15 @@
+Please report any sensitive security-related bugs via email to the
+tzdb designated coordinators, currently Paul Eggert
+<eggert@cs.ucla.edu> and Tim Parenti <tim@timtimeonline.com>.
+Put "tzdb security" at the start of your email's subject line.
+We prefer communications to be in English.
+
+You should receive a response within a week. If not, please follow up
+via email to make sure we received your original message.
+
+If we confirm the bug, we plan to notify affected third-party services
+or software that we know about, prepare an advisory, commit fixes to
+the main development branch as quickly as is practical, and finally
+publish the advisory on tz@iana.org.  As with all tzdb contributions,
+we give credit to security contributors unless they wish to remain
+anonymous.
index 28168cfc17f866b823932a3d513d3ac8542773f8..4bf491e99d50a3efd5a97c2af2d2ad7fd77cea94 100644 (file)
@@ -30,9 +30,6 @@
 # Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94.
 # https://www.jstor.org/stable/1774359
 #
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-#
 # European-style abbreviations are commonly used along the Mediterranean.
 # For sub-Saharan Africa abbreviations were less standardized.
 # Previous editions of this database used WAT, CAT, SAT, and EAT
@@ -153,8 +150,9 @@ Zone        Africa/Ndjamena 1:00:12 -       LMT     1912        # N'Djamena
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Abidjan  -0:16:08 -      LMT     1912
                         0:00   -       GMT
+Link Africa/Abidjan Africa/Accra       # Ghana
 Link Africa/Abidjan Africa/Bamako      # Mali
-Link Africa/Abidjan Africa/Banjul      # Gambia
+Link Africa/Abidjan Africa/Banjul      # The Gambia
 Link Africa/Abidjan Africa/Conakry     # Guinea
 Link Africa/Abidjan Africa/Dakar       # Senegal
 Link Africa/Abidjan Africa/Freetown    # Sierra Leone
@@ -381,93 +379,8 @@ Zone       Africa/Cairo    2:05:09 -       LMT     1900 Oct
 # Gabon
 # See Africa/Lagos.
 
-# Gambia
-# See Africa/Abidjan.
-
+# The Gambia
 # Ghana
-
-# From P Chan (2020-11-20):
-# Interpretation Amendment Ordinance, 1915 (No.24 of 1915) [1915-11-02]
-# Ordinances of the Gold Coast, Ashanti, Northern Territories 1915, p 69-71
-# https://books.google.com/books?id=ErA-AQAAIAAJ&pg=PA70
-# This Ordinance added "'Time' shall mean Greenwich Mean Time" to the
-# Interpretation Ordinance, 1876.
-#
-# Determination of the Time Ordinance, 1919 (No. 18 of 1919) [1919-11-24]
-# Ordinances of the Gold Coast, Ashanti, Northern Territories 1919, p 75-76
-# https://books.google.com/books?id=MbA-AQAAIAAJ&pg=PA75
-# This Ordinance removed the previous definition of time and introduced DST.
-#
-# Time Determination Ordinance (Cap. 214)
-# The Laws of the Gold Coast (including Togoland Under British Mandate)
-# Vol. II (1937), p 2328
-# https://books.google.com/books?id=Z7M-AQAAIAAJ&pg=PA2328
-# Revised edition of the 1919 Ordinance.
-#
-# Time Determination (Amendment) Ordinance, 1940 (No. 9 of 1940) [1940-04-06]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1940, p 22
-# https://books.google.com/books?id=1ao-AQAAIAAJ&pg=PA22
-# This Ordinance changed the forward transition from September to May.
-#
-# Defence (Time Determination Ordinance Amendment) Regulations, 1942
-# (Regulations No. 6 of 1942) [1942-01-31, commenced on 1942-02-08]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1942, p 48
-# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA48
-# These regulations advanced the [standard] time by thirty minutes.
-#
-# Defence (Time Determination Ordinance Amendment (No.2)) Regulations,
-# 1942 (Regulations No. 28 of 1942) [1942-04-25]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1942, p 87
-# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA87
-# These regulations abolished DST and changed the time to GMT+0:30.
-#
-# Defence (Revocation) (No.4) Regulations, 1945 (Regulations No. 45 of
-# 1945) [1945-10-24, commenced on 1946-01-06]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1945, p 256
-# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA256
-# These regulations revoked the previous two sets of Regulations.
-#
-# Time Determination (Amendment) Ordinance, 1945 (No. 18 of 1945) [1946-01-06]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1945, p 69
-# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA69
-# This Ordinance abolished DST.
-#
-# Time Determination (Amendment) Ordinance, 1950 (No. 26 of 1950) [1950-07-22]
-# Annual Volume of the Laws of the Gold Coast:
-# Containing All Legislation Enacted During Year 1950, p 35
-# https://books.google.com/books?id=e60-AQAAIAAJ&pg=PA35
-# This Ordinance restored DST but with thirty minutes offset.
-#
-# Time Determination Ordinance (Cap. 264)
-# The Laws of the Gold Coast, Vol. V (1954), p 380
-# https://books.google.com/books?id=Mqc-AQAAIAAJ&pg=PA380
-# Revised edition of the Time Determination Ordinance.
-#
-# Time Determination (Amendment) Ordinance, 1956 (No. 21 of 1956) [1956-08-29]
-# Annual Volume of the Ordinances of the Gold Coast Enacted During the
-# Year 1956, p 83
-# https://books.google.com/books?id=VLE-AQAAIAAJ&pg=PA83
-# This Ordinance abolished DST.
-
-# Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
-Rule   Ghana   1919    only    -       Nov     24      0:00    0:20    +0020
-Rule   Ghana   1920    1942    -       Jan      1      2:00    0       GMT
-Rule   Ghana   1920    1939    -       Sep      1      2:00    0:20    +0020
-Rule   Ghana   1940    1941    -       May      1      2:00    0:20    +0020
-Rule   Ghana   1950    1955    -       Sep      1      2:00    0:30    +0030
-Rule   Ghana   1951    1956    -       Jan      1      2:00    0       GMT
-
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone   Africa/Accra    -0:00:52 -      LMT     1915 Nov  2
-                        0:00   Ghana   %s      1942 Feb  8
-                        0:30   -       +0030   1946 Jan  6
-                        0:00   Ghana   %s
-
 # Guinea
 # See Africa/Abidjan.
 
@@ -732,7 +645,7 @@ Zone Indian/Mauritius       3:50:00 -       LMT     1907 # Port Louis
 # See Africa/Nairobi.
 
 # Morocco
-# See the 'europe' file for Spanish Morocco (Africa/Ceuta).
+# See Africa/Ceuta for Spanish Morocco.
 
 # From Alex Krivenyshev (2008-05-09):
 # Here is an article that Morocco plan to introduce Daylight Saving Time between
@@ -1005,6 +918,10 @@ Zone Indian/Mauritius     3:50:00 -       LMT     1907 # Port Louis
 #         (car (cdr (cdr a))) (calendar-month-name (car a) t) (car (cdr a))
 #         (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b)))))
 #     (setq islamic-year (+ 1 islamic-year))))
+#
+# From Milamber (2021-03-31, 2022-03-10), confirming these predictions:
+# https://www.mmsp.gov.ma/fr/actualites.aspx?id=2076
+# https://www.ecoactu.ma/horaires-administration-ramadan-gmtheure-gmt-a-partir-de-dimanche-27-mars/
 
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 Rule   Morocco 1939    only    -       Sep     12       0:00   1:00    -
@@ -1382,23 +1299,21 @@ Zone    Africa/Lagos    0:13:35 -       LMT     1905 Jul  1
                        0:13:35 -       LMT     1914 Jan  1
                        0:30    -       +0030   1919 Sep  1
                        1:00    -       WAT
-Link Africa/Lagos Africa/Bangui             # Central African Republic
-Link Africa/Lagos Africa/Brazzaville # Rep. of the Congo
-Link Africa/Lagos Africa/Douala             # Cameroon
-Link Africa/Lagos Africa/Kinshasa    # Dem. Rep. of the Congo (west)
-Link Africa/Lagos Africa/Libreville  # Gabon
-Link Africa/Lagos Africa/Luanda             # Angola
-Link Africa/Lagos Africa/Malabo             # Equatorial Guinea
-Link Africa/Lagos Africa/Niamey             # Niger
-Link Africa/Lagos Africa/Porto-Novo  # Benin
+Link Africa/Lagos Africa/Bangui                # Central African Republic
+Link Africa/Lagos Africa/Brazzaville   # Rep. of the Congo
+Link Africa/Lagos Africa/Douala                # Cameroon
+Link Africa/Lagos Africa/Kinshasa      # Dem. Rep. of the Congo (west)
+Link Africa/Lagos Africa/Libreville    # Gabon
+Link Africa/Lagos Africa/Luanda                # Angola
+Link Africa/Lagos Africa/Malabo                # Equatorial Guinea
+Link Africa/Lagos Africa/Niamey                # Niger
+Link Africa/Lagos Africa/Porto-Novo    # Benin
 
 # Réunion
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Indian/Reunion  3:41:52 -       LMT     1911 Jun # Saint-Denis
                        4:00    -       +04
 #
-# 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
 # Îles Éparses (<http://www.outre-mer.gouv.fr/domtom/ile.htm>, 1997-07-22,
@@ -1490,8 +1405,8 @@ Rule      SA      1943    1944    -       Mar     Sun>=15 2:00    0       -
 Zone Africa/Johannesburg 1:52:00 -     LMT     1892 Feb 8
                        1:30    -       SAST    1903 Mar
                        2:00    SA      SAST
-Link Africa/Johannesburg Africa/Maseru    # Lesotho
-Link Africa/Johannesburg Africa/Mbabane    # Eswatini
+Link Africa/Johannesburg Africa/Maseru # Lesotho
+Link Africa/Johannesburg Africa/Mbabane        # Eswatini
 #
 # Marion and Prince Edward Is
 # scientific station since 1947
@@ -1527,12 +1442,13 @@ Zone    Africa/Khartoum 2:10:08 -       LMT     1931
                        3:00    -       EAT     2017 Nov  1
                        2:00    -       CAT
 
+# South Sudan
+
 # From Steffen Thorsen (2021-01-18):
 # "South Sudan will change its time zone by setting the clock back 1
 # hour on February 1, 2021...."
 # from https://eyeradio.org/south-sudan-adopts-new-time-zone-makuei/
 
-# South Sudan
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Juba     2:06:28 -       LMT     1931
                        2:00    Sudan   CA%sT   2000 Jan 15 12:00
@@ -1637,7 +1553,7 @@ Rule      Tunisia 2005    only    -       Sep     30       1:00s  0       -
 Rule   Tunisia 2006    2008    -       Mar     lastSun  2:00s  1:00    S
 Rule   Tunisia 2006    2008    -       Oct     lastSun  2:00s  0       -
 
-# See Europe/Paris for PMT-related transitions.
+# See Europe/Paris commentary for PMT-related transitions.
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Africa/Tunis    0:40:44 -       LMT     1881 May 12
                        0:09:21 -       PMT     1911 Mar 11 # Paris Mean Time
index ed750a899217e640f0d661fce7cadbaf6be35927..70a5422a9e0a070df8889d9e4368715eb4a358f2 100644 (file)
@@ -148,7 +148,7 @@ Zone Antarctica/Mawson      0       -       -00     1954 Feb 13
 #
 # Alfred Faure, Possession Island, Crozet Islands, -462551+0515152, since 1964;
 #      sealing & whaling stations operated variously 1802/1911+;
-#      see Indian/Reunion.
+#      see Asia/Dubai.
 #
 # Martin-de-Viviès, Amsterdam Island, -374105+0773155, since 1950
 # Port-aux-Français, Kerguelen Islands, -492110+0701303, since 1951;
@@ -162,17 +162,7 @@ Zone Indian/Kerguelen      0       -       -00     1950 # Port-aux-Français
                        5:00    -       +05
 #
 # year-round base in the main continent
-# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
-# <https://en.wikipedia.org/wiki/Dumont_d'Urville_Station> (2005-12-05)
-#
-# Another base at Port-Martin, 50km east, began operation in 1947.
-# It was destroyed by fire on 1952-01-14.
-#
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone Antarctica/DumontDUrville 0 -     -00     1947
-                       10:00   -       +10     1952 Jan 14
-                       0       -       -00     1956 Nov
-                       10:00   -       +10
+# Dumont d'Urville - see Pacific/Port_Moresby.
 
 # France & Italy - year-round base
 # Concordia, -750600+1232000, since 2005
@@ -188,20 +178,7 @@ Zone Antarctica/DumontDUrville 0 - -00     1947
 # Zuchelli, Terra Nova Bay, -744140+1640647, since 1986
 
 # Japan - year-round bases
-# Syowa (also known as Showa), -690022+0393524, since 1957
-#
-# From Hideyuki Suzuki (1999-02-06):
-# In all Japanese stations, +0300 is used as the standard time.
-#
-# Syowa station, which is the first antarctic station of Japan,
-# was established on 1957-01-29.  Since Syowa station is still the main
-# station of Japan, it's appropriate for the principal location.
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone Antarctica/Syowa  0       -       -00     1957 Jan 29
-                       3:00    -       +03
-# See:
-# NIPR Antarctic Research Activities (1999-08-17)
-# http://www.nipr.ac.jp/english/ara01.html
+# See Asia/Riyadh.
 
 # S Korea - year-round base
 # Jang Bogo, Terra Nova Bay, -743700+1641205 since 2014
index ea59f5270b514ccbaff63194f0740d9dee3d26b7..049b35c148e5872c8af80f613c38c41cee7b94ff 100644 (file)
@@ -34,9 +34,6 @@
 # Byalokoz EL. New Counting of Time in Russia since July 1, 1919.
 # (See the 'europe' file for a fuller citation.)
 #
-# A reliable and entertaining source about time zones is
-# Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997).
-#
 # The following alphabetic abbreviations appear in these tables
 # (corrections are welcome):
 #           std  dst
@@ -2749,7 +2746,8 @@ Rule      NBorneo 1935    1941    -       Dec     14      0:00    0       -
 #
 # peninsular Malaysia
 # taken from Mok Ly Yng (2003-10-30)
-# http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html
+# https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html
+# This agrees with Singapore since 1905-06-01.
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone Asia/Kuala_Lumpur 6:46:46 -       LMT     1901 Jan  1
                        6:55:25 -       SMT     1905 Jun  1 # Singapore M.T.
@@ -3408,8 +3406,12 @@ Zone     Asia/Karachi    4:28:12 -       LMT     1907
 # ... winter time will begin in Palestine from Friday 10-29, 01:00 AM
 # by 60 minutes backwards.
 #
-# From Paul Eggert (2021-10-20):
-# Guess future fall transitions on October's last Friday at 01:00.
+# From Tim Parenti (2021-10-25), per Paul Eggert (2021-10-24):
+# Guess future fall transitions at 01:00 on the Friday preceding October's
+# last Sunday (i.e., Fri>=23), as this is more consistent with recent practice.
+
+# From Heba Hamad (2022-03-10):
+# summer time will begin in Palestine from Sunday 03-27-2022, 00:00 AM.
 
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 Rule EgyptAsia 1957    only    -       May     10      0:00    1:00    S
@@ -3445,9 +3447,10 @@ Rule Palestine   2016    2018    -       Mar     Sat>=24 1:00    1:00    S
 Rule Palestine 2016    2018    -       Oct     Sat>=24 1:00    0       -
 Rule Palestine 2019    only    -       Mar     29      0:00    1:00    S
 Rule Palestine 2019    only    -       Oct     Sat>=24 0:00    0       -
-Rule Palestine 2020    max     -       Mar     Sat>=24 0:00    1:00    S
+Rule Palestine 2020    2021    -       Mar     Sat>=24 0:00    1:00    S
 Rule Palestine 2020    only    -       Oct     24      1:00    0       -
-Rule Palestine 2021    max     -       Oct     lastFri 1:00    0       -
+Rule Palestine 2021    max     -       Oct     Fri>=23 1:00    0       -
+Rule Palestine 2022    max     -       Mar     Sun>=25 0:00    1:00    S
 
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Gaza       2:17:52 -       LMT     1900 Oct
@@ -3516,6 +3519,12 @@ Zone     Asia/Hebron     2:20:23 -       LMT     1900 Oct
 # influence of the sources.  There is no current abbreviation for DST,
 # so use "PDT", the usual American style.
 
+# From P Chan (2021-05-10):
+# Here's a fairly comprehensive article in Japanese:
+# https://wiki.suikawiki.org/n/Philippine%20Time
+# From Paul Eggert (2021-05-10):
+# The info in the Japanese table has not been absorbed (yet) below.
+
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 Rule   Phil    1936    only    -       Nov     1       0:00    1:00    D
 Rule   Phil    1937    only    -       Feb     1       0:00    0       S
@@ -3582,12 +3591,13 @@ Link Asia/Qatar Asia/Bahrain
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Riyadh     3:06:52 -       LMT     1947 Mar 14
                        3:00    -       +03
+Link Asia/Riyadh Antarctica/Syowa
 Link Asia/Riyadh Asia/Aden     # Yemen
 Link Asia/Riyadh Asia/Kuwait
 
 # Singapore
 # taken from Mok Ly Yng (2003-10-30)
-# http://www.math.nus.edu.sg/aslaksen/teaching/timezone.html
+# https://web.archive.org/web/20190822231045/http://www.math.nus.edu.sg/~mathelmr/teaching/timezone.html
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone   Asia/Singapore  6:55:25 -       LMT     1901 Jan  1
                        6:55:25 -       SMT     1905 Jun  1 # Singapore M.T.
index eba0fad1c21315f7f338feb616945eb71ecff4b7..77c2c69f0974895b5372afc1311df49a240bd783 100644 (file)
@@ -478,7 +478,7 @@ Link Pacific/Guam Pacific/Saipan # N Mariana Is
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone Pacific/Tarawa     11:32:04 -     LMT     1901 # Bairiki
                         12:00  -       +12
-Zone Pacific/Enderbury -11:24:20 -     LMT     1901
+Zone Pacific/Kanton      0     -       -00     1937 Aug 31
                        -12:00  -       -12     1979 Oct
                        -11:00  -       -11     1994 Dec 31
                         13:00  -       +13
@@ -611,13 +611,46 @@ Link Pacific/Auckland Antarctica/McMurdo
 # was probably like Pacific/Auckland
 
 # Cook Is
-# From Shanks & Pottenger:
+#
+# From Alexander Krivenyshev (2021-03-24):
+# In 1899 the Cook Islands celebrated Christmas twice to correct the calendar.
+# According to the old books, missionaries were unaware of
+# the International Date line, when they came from Sydney.
+# Thus the Cook Islands were one day ahead....
+# http://nzetc.victoria.ac.nz/tm/scholarly/tei-KloDisc-t1-body-d18.html
+# ... Appendix to the Journals of the House of Representatives, 1900
+# https://atojs.natlib.govt.nz/cgi-bin/atojs?a=d&d=AJHR1900-I.2.1.2.3
+# (page 20)
+#
+# From Michael Deckers (2021-03-24):
+# ... in the Cook Island Act of 1915-10-11, online at
+# http://www.paclii.org/ck/legis/ck-nz_act/cia1915132/
+# "651. The hour of the day shall in each of the islands included in the
+#  Cook Islands be determined in accordance with the meridian of that island."
+# so that local (mean?) time was still used in Rarotonga (and Niue) in 1915.
+# This was changed in the Cook Island Amendment Act of 1952-10-16 ...
+# http://www.paclii.org/ck/legis/ck-nz_act/ciaa1952212/
+# "651 (1) The hour of the day in each of the islands included in the Cook
+#  Islands, other than Niue, shall be determined as if each island were
+#  situated on the meridian one hundred and fifty-seven degrees thirty minutes
+#  West of Greenwich.  (2) The hour of the day in the Island of Niue shall be
+#  determined as if that island were situated on the meridian one hundred and
+#  seventy degrees West of Greenwich."
+# This act does not state when it takes effect, so one has to assume it
+# applies since 1952-10-16.  But there is the possibility that the act just
+# legalized prior existing practice, as we had seen with the Guernsey law of
+# 1913-06-18 for the switch in 1909-04-19.
+#
+# From Paul Eggert (2021-03-24):
+# Transitions after 1952 are from Shanks & Pottenger.
+#
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 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    -
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone Pacific/Rarotonga -10:39:04 -     LMT     1901        # Avarua
+Zone Pacific/Rarotonga 13:20:56 -      LMT     1899 Dec 26 # Avarua
+                       -10:39:04 -     LMT     1952 Oct 16
                        -10:30  -       -1030   1978 Nov 12
                        -10:00  Cook    -10/-0930
 
@@ -625,10 +658,18 @@ Zone Pacific/Rarotonga    -10:39:04 -     LMT     1901        # Avarua
 
 
 # Niue
+# See Pacific/Raratonga comments for 1952 transition.
+#
+# From Tim Parenti (2021-09-13):
+# Consecutive contemporaneous editions of The Air Almanac listed -11:20 for
+# Niue as of Apr 1964 but -11 as of Aug 1964:
+#   Apr 1964: https://books.google.com/books?id=_1So677Y5vUC&pg=SL1-PA23
+#   Aug 1964: https://books.google.com/books?id=MbJloqd-zyUC&pg=SL1-PA23
+# Without greater specificity, guess 1964-07-01 for this transition.
+
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone   Pacific/Niue    -11:19:40 -     LMT     1901        # Alofi
-                       -11:20  -       -1120   1951
-                       -11:30  -       -1130   1978 Oct  1
+Zone   Pacific/Niue    -11:19:40 -     LMT     1952 Oct 16     # Alofi
+                       -11:20  -       -1120   1964 Jul
                        -11:00  -       -11
 
 # Norfolk
@@ -652,6 +693,7 @@ Zone Pacific/Palau  -15:02:04 -     LMT     1844 Dec 31     # Koror
 Zone Pacific/Port_Moresby 9:48:40 -    LMT     1880
                        9:48:32 -       PMMT    1895 # Port Moresby Mean Time
                        10:00   -       +10
+Link Pacific/Port_Moresby Antarctica/DumontDUrville
 #
 # From Paul Eggert (2014-10-13):
 # Base the Bougainville entry on the Arawa-Kieta region, which appears to have
@@ -813,8 +855,8 @@ Rule        Tonga   2001    2002    -       Jan     lastSun 2:00    0       -
 Rule   Tonga   2016    only    -       Nov     Sun>=1  2:00    1:00    -
 Rule   Tonga   2017    only    -       Jan     Sun>=15 3:00    0       -
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone Pacific/Tongatapu 12:19:20 -      LMT     1901
-                       12:20   -       +1220   1941
+Zone Pacific/Tongatapu 12:19:12 -      LMT     1945 Sep 10
+                       12:20   -       +1220   1961
                        13:00   -       +13     1999
                        13:00   Tonga   +13/+14
 
@@ -1756,6 +1798,23 @@ Zone     Pacific/Wallis  12:15:20 -      LMT     1901
 # One source for this is page 202 of: Bartky IR. One Time Fits All:
 # The Campaigns for Global Uniformity (2007).
 
+# Kanton
+
+# From Paul Eggert (2021-05-27):
+# Kiribati's +13 timezone is represented by Kanton, its only populated
+# island.  (It was formerly spelled "Canton", but Gilbertese lacks "C".)
+# Kanton was settled on 1937-08-31 by two British radio operators
+# <https://history.state.gov/historicaldocuments/frus1937v02/d94>;
+# Americans came the next year and built an airfield, partly to
+# establish airline service and perhaps partly anticipating the
+# next war.  Aside from the war, the airfield was used by commercial
+# airlines until long-range jets became standard; although currently
+# for emergency use only, China says it is considering rebuilding the
+# airfield for high-end niche tourism.  Kanton has about two dozen
+# people, caretakers who rotate in from the rest of Kiribati in 2-5
+# year shifts, and who use some of the leftover structures
+# <http://pipa.neaq.org/2012/06/images-of-kanton-island.html>.
+
 # Kwajalein
 
 # From an AP article (1993-08-22):
@@ -2039,6 +2098,17 @@ Zone     Pacific/Wallis  12:15:20 -      LMT     1901
 
 # Tonga
 
+# From Paul Eggert (2021-03-04):
+# In 1943 "The standard time kept is 12 hrs. 19 min. 12 sec. fast
+# on Greenwich mean time." according to the Admiralty's Hydrographic
+# Dept., Pacific Islands Pilot, Vol. II, 7th ed., 1943, p 360.
+
+# From Michael Deckers (2021-03-03):
+# [Ian R Bartky: "One Time Fits All: The Campaigns for Global Uniformity".
+# Stanford University Press. 2007. p. 255]:
+# On 10 September 1945 Tonga adopted a standard time 12 hours,
+# 20 minutes in advance of Greenwich.
+
 # From Paul Eggert (1996-01-22):
 # Today's _Wall Street Journal_ (p 1) reports that "Tonga has been plotting
 # to sneak ahead of [New Zealanders] by introducing daylight-saving time."
@@ -2067,9 +2137,26 @@ Zone     Pacific/Wallis  12:15:20 -      LMT     1901
 # The Crown Prince, presented an unanswerable argument: "Remember that
 # on the World Day of Prayer, you would be the first people on Earth
 # to say your prayers in the morning."
-
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say the transition was on 1968-10-01; go with Mundell.
+#
+# From Tim Parenti (2021-09-13), per Paul Eggert (2006-03-22) and Michael
+# Deckers (2021-03-03):
+# Mundell places the transition from +12:20 to +13 in 1941, while Shanks &
+# Pottenger say the transition was on 1968-10-01.
+#
+# The Air Almanac published contemporaneous tables of standard times,
+# which listed +12:20 as of Nov 1960 and +13 as of Mar 1961:
+#   Nov 1960: https://books.google.com/books?id=bVgtWM6kPZUC&pg=SL1-PA19
+#   Mar 1961: https://books.google.com/books?id=W2nItAul4g0C&pg=SL1-PA19
+# (Thanks to P Chan for pointing us toward these sources.)
+# This agrees with Bartky, who writes that "since 1961 [Tonga's] official time
+# has been thirteen hours in advance of Greenwich time" (p. 202) and further
+# writes in an endnote that this was because "the legislation was amended" on
+# 1960-10-19. (p. 255)
+#
+# Without greater specificity, presume that Bartky and the Air Almanac point to
+# a 1961-01-01 transition, as Tāufaʻāhau Tupou IV was still Crown Prince in
+# 1961 and this still jives with the gist of Mundell's telling, and go with
+# this over Shanks & Pottenger.
 
 # From Eric Ulevik (1999-05-03):
 # Tonga's director of tourism, who is also secretary of the National Millennium
index 0c55be221df1b6a6366d992d71b41ac7cce6ad57..7685c7429c5090a5e2106bc6b552bff2abbafecd 100644 (file)
@@ -3,8 +3,10 @@
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
-# This file provides links between current names for timezones
-# and their old names.  Many names changed in late 1993.
+# This file provides links from old or merged timezone names to current ones.
+# Many names changed in late 1993.  Several of these names are
+# also present in the file 'backzone', which has data important only
+# for pre-1970 timestamps and so is out of scope for tzdb proper.
 
 # Link TARGET                  LINK-NAME
 Link   Africa/Nairobi          Africa/Asmera
@@ -13,7 +15,7 @@ Link  America/Argentina/Catamarca     America/Argentina/ComodRivadavia
 Link   America/Adak            America/Atka
 Link   America/Argentina/Buenos_Aires  America/Buenos_Aires
 Link   America/Argentina/Catamarca     America/Catamarca
-Link   America/Atikokan        America/Coral_Harbour
+Link   America/Panama          America/Coral_Harbour
 Link   America/Argentina/Cordoba       America/Cordoba
 Link   America/Tijuana         America/Ensenada
 Link   America/Indiana/Indianapolis    America/Fort_Wayne
@@ -28,7 +30,7 @@ Link  America/Rio_Branco      America/Porto_Acre
 Link   America/Argentina/Cordoba       America/Rosario
 Link   America/Tijuana         America/Santa_Isabel
 Link   America/Denver          America/Shiprock
-Link   America/Port_of_Spain   America/Virgin
+Link   America/Puerto_Rico     America/Virgin
 Link   Pacific/Auckland        Antarctica/South_Pole
 Link   Asia/Ashgabat           Asia/Ashkhabad
 Link   Asia/Kolkata            Asia/Calcutta
@@ -103,6 +105,7 @@ Link        Pacific/Auckland        NZ
 Link   Pacific/Chatham         NZ-CHAT
 Link   America/Denver          Navajo
 Link   Asia/Shanghai           PRC
+Link   Pacific/Kanton          Pacific/Enderbury
 Link   Pacific/Honolulu        Pacific/Johnston
 Link   Pacific/Pohnpei         Pacific/Ponape
 Link   Pacific/Pago_Pago       Pacific/Samoa
index 3ce7277314c0a5ce3c335b2c90b66a0a49486542..879a140251837185966c3995238a47c9e44e6620 100644 (file)
 #
 # As explained in the zic man page, the zone columns are:
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
+# and the rule columns are:
+# Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
+
+
+# Ghana
+
+# From P Chan (2020-11-20):
+# Interpretation Amendment Ordinance, 1915 (No.24 of 1915) [1915-11-02]
+# Ordinances of the Gold Coast, Ashanti, Northern Territories 1915, p 69-71
+# https://books.google.com/books?id=ErA-AQAAIAAJ&pg=PA70
+# This Ordinance added "'Time' shall mean Greenwich Mean Time" to the
+# Interpretation Ordinance, 1876.
+#
+# Determination of the Time Ordinance, 1919 (No. 18 of 1919) [1919-11-24]
+# Ordinances of the Gold Coast, Ashanti, Northern Territories 1919, p 75-76
+# https://books.google.com/books?id=MbA-AQAAIAAJ&pg=PA75
+# This Ordinance removed the previous definition of time and introduced DST.
+#
+# Time Determination Ordinance (Cap. 214)
+# The Laws of the Gold Coast (including Togoland Under British Mandate)
+# Vol. II (1937), p 2328
+# https://books.google.com/books?id=Z7M-AQAAIAAJ&pg=PA2328
+# Revised edition of the 1919 Ordinance.
+#
+# Time Determination (Amendment) Ordinance, 1940 (No. 9 of 1940) [1940-04-06]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1940, p 22
+# https://books.google.com/books?id=1ao-AQAAIAAJ&pg=PA22
+# This Ordinance changed the forward transition from September to May.
+#
+# Defence (Time Determination Ordinance Amendment) Regulations, 1942
+# (Regulations No. 6 of 1942) [1942-01-31, commenced on 1942-02-08]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1942, p 48
+# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA48
+# These regulations advanced the [standard] time by thirty minutes.
+#
+# Defence (Time Determination Ordinance Amendment (No.2)) Regulations,
+# 1942 (Regulations No. 28 of 1942) [1942-04-25]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1942, p 87
+# https://books.google.com/books?id=Das-AQAAIAAJ&pg=PA87
+# These regulations abolished DST and changed the time to GMT+0:30.
+#
+# Defence (Revocation) (No.4) Regulations, 1945 (Regulations No. 45 of
+# 1945) [1945-10-24, commenced on 1946-01-06]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1945, p 256
+# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA256
+# These regulations revoked the previous two sets of Regulations.
+#
+# Time Determination (Amendment) Ordinance, 1945 (No. 18 of 1945) [1946-01-06]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1945, p 69
+# https://books.google.com/books?id=9as-AQAAIAAJ&pg=PA69
+# This Ordinance abolished DST.
+#
+# Time Determination (Amendment) Ordinance, 1950 (No. 26 of 1950) [1950-07-22]
+# Annual Volume of the Laws of the Gold Coast:
+# Containing All Legislation Enacted During Year 1950, p 35
+# https://books.google.com/books?id=e60-AQAAIAAJ&pg=PA35
+# This Ordinance restored DST but with thirty minutes offset.
+#
+# Time Determination Ordinance (Cap. 264)
+# The Laws of the Gold Coast, Vol. V (1954), p 380
+# https://books.google.com/books?id=Mqc-AQAAIAAJ&pg=PA380
+# Revised edition of the Time Determination Ordinance.
+#
+# Time Determination (Amendment) Ordinance, 1956 (No. 21 of 1956) [1956-08-29]
+# Annual Volume of the Ordinances of the Gold Coast Enacted During the
+# Year 1956, p 83
+# https://books.google.com/books?id=VLE-AQAAIAAJ&pg=PA83
+# This Ordinance abolished DST.
+
+Rule   Ghana   1919    only    -       Nov     24      0:00    0:20    +0020
+Rule   Ghana   1920    1942    -       Jan      1      2:00    0       GMT
+Rule   Ghana   1920    1939    -       Sep      1      2:00    0:20    +0020
+Rule   Ghana   1940    1941    -       May      1      2:00    0:20    +0020
+Rule   Ghana   1950    1955    -       Sep      1      2:00    0:30    +0030
+Rule   Ghana   1951    1956    -       Jan      1      2:00    0       GMT
+
+Zone   Africa/Accra    -0:00:52 -      LMT     1915 Nov  2
+                        0:00   Ghana   %s      1942 Feb  8
+                        0:30   -       +0030   1946 Jan  6
+                        0:00   Ghana   %s
 
 # Ethiopia
 # From Paul Eggert (2014-07-31):
@@ -101,14 +186,36 @@ Zone      Africa/Bamako   -0:32:00 -      LMT     1912
 Zone   Africa/Bangui   1:14:20 -       LMT     1912
                        1:00    -       WAT
 
-# Gambia
+# The Gambia
+# From P Chan (2020-12-09):
+# Standard time of GMT-1 was adopted on 1933-04-01.  On 1942-02-01, GMT was
+# adopted as a war time measure.  This was made permanent in 1946.
+#
+# Interpretation Ordinance, 1914 (No. 12 of 1914) [1914-09-29]
+# Interpretation Ordinance, 1933 (No. 10 of 1933) [1933-03-31]
+# Notice No. 5 of 1942, Colony of the Gambia Government Gazette, Vol. LIX,
+# No.2, 1942-01-15, p 2
+# Interpretation (Amendment) Ordinance, 1946 (No. 3 of 1946) [1946-07-15]
 Zone   Africa/Banjul   -1:06:36 -      LMT     1912
-                       -1:06:36 -      BMT     1935 # Banjul Mean Time
-                       -1:00   -       -01     1964
+                       -1:06:36 -      BMT     1933 Apr  1 # Banjul Mean Time
+                       -1:00   -       -01     1942 Feb  1  0:00
                         0:00   -       GMT
 
 # Malawi
-Zone   Africa/Blantyre 2:20:00 -       LMT     1903 Mar
+# From P Chan (2020-12-09):
+# In 1911, Zomba mean time was adopted as the legal time of Nyasaland.  In
+# 1914, Zomba mean time switched from GMT+2:21:10 to GMT+2:21. On 1925-07-01,
+# GMT+2 was adopted.
+#
+# Interpretation and General Clauses Ordinance, 1911 (No. 12 of 1911)
+# [1911-07-24]
+# Notice No. 124 of 1914, 1914-06-30, The Nyasaland Government Gazette, Vol.
+# XXI, No. 8, 1914-06-30, p 122
+# Interpretation and General Clauses (Amendment) Ordinance, 1925 (No. 3 of
+# 1925) [1925-04-02]
+Zone   Africa/Blantyre 2:20:00 -       LMT     1911 Jul 24
+                       2:21:10 -       ZMT     1914 Jun 30 # Zomba Mean Time
+                       2:21    -       ZMT     1925 Jul  1
                        2:00    -       CAT
 
 # Republic of the Congo
@@ -145,19 +252,49 @@ Zone      Africa/Djibouti 2:52:36 -       LMT     1911 Jul
 Zone   Africa/Douala   0:38:48 -       LMT     1912
                        1:00    -       WAT
 # 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 minutes on 1933-10-01.
-# Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
-Rule   SL      1935    1942    -       Jun      1      0:00    0:40    -0020
-Rule   SL      1935    1942    -       Oct      1      0:00    0       -01
-Rule   SL      1957    1962    -       Jun      1      0:00    1:00    +01
-Rule   SL      1957    1962    -       Sep      1      0:00    0       GMT
+# From P Chan (2020-12-09):
+# Standard time of GMT-1 was adopted on 1913-07-01.  Twenty minutes of DST was
+# introduce[d] in 1932 and was suspended in 1939.  In 1941, GMT was adopted by
+# Defence Regulations.  This was made permanent in 1946.
+#
+# Government Notice No. 121 of 1913, 1913-06-06, Sierra Leone Royal Gazette,
+# Vol. XLIV, No. 1384, 1913-06-14, p 347
+# Alteration of Time Ordinance, 1932 (No. 34 of 1932) [1932-12-01]
+# Alteration of Time (Amendment) Ordinance, 1938 (No. 25 of 1938) [1938-11-24]
+# Defence Regulations (No. 9), 1939 (Regulations No. 9 of 1939), 1939-09-05
+# Defence Regulations (No. 11), 1939 (Regulations No. 11 of 1939), 1939-09-27
+# Defence (Amendment) (No. 17) Regulations, 1941 (Public Notice No. 157 of
+# 1941), 1914-12-04
+# Alteration of Time (Amendment) Ordinance, 1946 (No. 2 of 1946) [1946-02-07]
+
+# From Tim Parenti (2021-03-02), per P Chan (2021-02-25):
+# For Sierra Leone in 1957-1962, the standard time was defined in the
+# Alteration of Time Ordinance, 1932 (as amended in 1946, renamed to Local Time
+# Ordinance in 1960 and Local Time Act in 1961). It was unamended throughout
+# that period.  See references to "Time" in the Alphabetical Index of the
+# Legislation in force on the 31st day of December,
+#   1957: https://books.google.com/books?id=lvQ-AQAAIAAJ&pg=RA2-PA49
+#   1958: https://books.google.com/books?id=4fQ-AQAAIAAJ&pg=RA2-PA50
+#   1959: https://books.google.com/books?id=p_U-AQAAIAAJ&pg=RA2-PA55
+#   1960: https://books.google.com/books?id=JPY-AQAAIAAJ&pg=RA3-PA37
+#   1961: https://books.google.com/books?id=7vY-AQAAIAAJ&pg=RA3-PA41
+#   1962: https://books.google.com/books?id=W_c-AQAAIAAJ&pg=RA3-PA44
+#   1963: https://books.google.com/books?id=9vk-AQAAIAAJ&pg=RA1-PA47
+#
+# Although Shanks & Pottenger had DST from Jun 1 00:00 to Sep 1 00:00 in this
+# period, many contemporaneous almanacs agree that it wasn't used:
+# https://mm.icann.org/pipermail/tz/2021-February/029866.html
+# Go with the above.
+
+Rule   SL      1932    only    -       Dec      1       0:00   0:20    -0040
+Rule   SL      1933    1938    -       Mar     31      24:00   0       -01
+Rule   SL      1933    1939    -       Aug     31      24:00   0:20    -0040
+Rule   SL      1939    only    -       May     31      24:00   0       -01
+
 Zone   Africa/Freetown -0:53:00 -      LMT     1882
-                       -0:53:00 -      FMT     1913 Jun # Freetown Mean Time
-                       -1:00   SL      %s      1957
+                       -0:53:00 -      FMT     1913 Jul  1 # Freetown MT
+                       -1:00   SL      %s      1939 Sep  5
+                       -1:00   -       -01     1941 Dec  6 24:00
                         0:00   SL      GMT/+01
 
 # Botswana
@@ -209,7 +346,15 @@ Zone       Africa/Luanda   0:52:56 -       LMT     1892
                        1:00    -       WAT
 
 # Democratic Republic of the Congo (east)
-Zone Africa/Lubumbashi 1:49:52 -       LMT     1897 Nov 9
+#
+# From Alois Treindl (2022-02-28):
+# My main source for its time zone history is
+# Henri le Corre, Régimes horaires pour l'Europe et l'Afrique.
+# Shanks follows le Corre.  As does Françoise Schneider-Gauquelin in her book
+# Problèmes de l'heure résolus pour le monde entier.
+#
+Zone Africa/Lubumbashi 1:49:52 -       LMT     1897 Nov  9
+                       1:00    -       WAT     1920 Apr 25
                        2:00    -       CAT
 
 # Zambia
@@ -298,6 +443,85 @@ Zone       America/Aruba   -4:40:24 -      LMT     1912 Feb 12 # Oranjestad
                        -4:30   -       -0430   1965
                        -4:00   -       AST
 
+# Atikokan, Ontario
+
+# From Paul Eggert (1997-10-17):
+# Mark Brader writes that an article in the 1997-10-14 Toronto Star
+# says that Atikokan, Ontario currently does not observe DST,
+# but will vote on 11-10 whether to use EST/EDT.
+# He also writes that the Ontario Time Act (1990, Chapter T.9)
+# http://www.gov.on.ca/MBS/english/publications/statregs/conttext.html
+# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
+# Officially Atikokan is therefore on CST/CDT, and most likely this report
+# concerns a non-official time observed as a matter of local practice.
+#
+# From Paul Eggert (2000-10-02):
+# Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and
+# New Osnaburgh observe CST all year, that Big Trout Lake observes
+# CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in
+# violation of the official Ontario rules.
+#
+# From Paul Eggert (2006-07-09):
+# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the
+# 2005-07-21 Chronicle-Journal, which said:
+#
+#      The clocks in Atikokan stay set on standard time year-round.
+#      This means they spend about half the time on central time and
+#      the other half on eastern time.
+#
+#      For the most part, the system works, Mayor Dennis Brown said.
+#
+#      "The majority of businesses in Atikokan deal more with Eastern
+#      Canada, but there are some that deal with Western Canada," he
+#      said.  "I don't see any changes happening here."
+#
+# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang
+# [New Osnaburgh] follow the same practice."
+
+# From Garry McKinnon (2006-07-14) via Chris Walton:
+# I chatted with a member of my board who has an outstanding memory
+# and a long history in Atikokan (and in the telecom industry) and he
+# can say for certain that Atikokan has been practicing the current
+# time keeping since 1952, at least.
+
+# From Paul Eggert (2006-07-17):
+# Shanks & Pottenger say that Atikokan has agreed with Rainy River
+# ever since standard time was introduced, but the information from
+# McKinnon sounds more authoritative.  For now, assume that Atikokan
+# switched to EST immediately after WWII era daylight saving time
+# ended.  This matches the old (less-populous) America/Coral_Harbour
+# entry since our cutoff date of 1970, so we can move
+# America/Coral_Harbour to the 'backward' file.
+
+Zone America/Atikokan  -6:06:28 -      LMT     1895
+                       -6:00   Canada  C%sT    1940 Sep 29
+                       -6:00   1:00    CDT     1942 Feb  9  2:00s
+                       -6:00   Canada  C%sT    1945 Sep 30  2:00
+                       -5:00   -       EST
+
+# Quebec east of Natashquan
+
+# From Paul Eggert (2021-05-09):
+# H. David Matthews and Mary Vincent's map
+# "It's about TIME", _Canadian Geographic_ (September-October 1998)
+# http://www.canadiangeographic.ca/Magazine/SO98/alacarte.asp
+# says that Quebec east of the -63 meridian is supposed to observe
+# AST, but residents as far east as Natashquan use EST/EDT, and
+# residents east of Natashquan use AST.
+# The Quebec department of justice writes in
+# "The situation in Minganie and Basse-Côte-Nord"
+# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/
+# that the coastal strip from just east of Natashquan to Blanc-Sablon
+# observes Atlantic standard time all year round.
+# This common practice was codified into law as of 2007; see Legal Time Act,
+# CQLR c T-5.1 <http://legisquebec.gouv.qc.ca/en/ShowDoc/cs/T-5.1>.
+# For lack of better info, guess this practice began around 1970, contra to
+# Shanks & Pottenger who have this region observing AST/ADT.
+
+Zone America/Blanc-Sablon -3:48:28 -   LMT     1884
+                       -4:00   Canada  A%sT    1970
+                       -4:00   -       AST
+
 # Cayman Is
 Zone   America/Cayman  -5:25:32 -      LMT     1890     # Georgetown
                        -5:07:10 -      KMT     1912 Feb # Kingston Mean Time
@@ -318,6 +542,85 @@ Zone America/Coral_Harbour -5:32:40 -      LMT     1884
                        -5:00   NT_YK   E%sT    1946
                        -5:00   -       EST
 
+# From Chris Walton (2011-12-01):
+# There are two areas within the Canadian province of British Columbia
+# that do not currently observe daylight saving:
+# a) The Creston Valley (includes the town of Creston and surrounding area)
+# b) The eastern half of the Peace River Regional District
+# (includes the cities of Dawson Creek and Fort St. John)
+
+# Earlier this year I stumbled across a detailed article about the time
+# keeping history of Creston; it was written by Tammy Hardwick who is the
+# manager of the Creston & District Museum. The article was written in May 2009.
+# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
+# According to the article, Creston has not changed its clocks since June 1918.
+# i.e. Creston has been stuck on UT-7 for 93 years.
+# Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
+
+# Unfortunately the exact date for the time change in June 1918 remains
+# unknown and will be difficult to ascertain.  I e-mailed Tammy a few months
+# ago to ask if Sunday June 2 was a reasonable guess.  She said it was just
+# as plausible as any other date (in June).  She also said that after writing
+# the article she had discovered another time change in 1916; this is the
+# subject of another article which she wrote in October 2010.
+# http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56
+
+# Here is a summary of the three clock change events in Creston's history:
+# 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.
+# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
+# Exact date in June unknown; Sunday June 2 is a reasonable guess.
+# note 1:
+# On Oct 27/1918 when daylight saving ended in the rest of Canada,
+# Creston did not change its clocks.
+# note 2:
+# During WWII when the Federal Government legislated a mandatory clock change,
+# Creston did not oblige.
+# note 3:
+# There is no guarantee that Creston will remain on Mountain Standard Time
+# (UTC-7) forever.
+# The subject was debated at least once this year by the town Council.
+# http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html
+
+# During a period WWII, summer time (Daylight saying) was mandatory in Canada.
+# In Creston, that was handled by shifting the area to PST (-8:00) then applying
+# summer time to cause the offset to be -7:00, the same as it had been before
+# the change.  It can be argued that the timezone abbreviation during this
+# period should be PDT rather than MST, but that doesn't seem important enough
+# (to anyone) to further complicate the rules.
+
+# The transition dates (and times) are guesses.
+
+Zone America/Creston   -7:46:04 -      LMT     1884
+                       -7:00   -       MST     1916 Oct 1
+                       -8:00   -       PST     1918 Jun 2
+                       -7:00   -       MST
+
+# Curaçao
+# Milne gives 4:35:46.9 for Curaçao mean time; round to nearest.
+#
+# From Paul Eggert (2006-03-22):
+# Shanks & Pottenger say that The Bottom and Philipsburg have been at
+# -4:00 since standard time was introduced on 1912-03-02; and that
+# Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
+# 1912-02-02 to 1965-01-01.  The former is dubious, since S&P also say
+# Saba Island has been like Curaçao.
+# This all predates our 1970 cutoff, though.
+#
+# By July 2007 Curaçao and St Maarten are planned to become
+# associated states within the Netherlands, much like Aruba;
+# Bonaire, Saba and St Eustatius would become directly part of the
+# Netherlands as Kingdom Islands.  This won't affect their time zones
+# though, as far as we know.
+#
+Zone   America/Curacao -4:35:47 -      LMT     1912 Feb 12 # Willemstad
+                       -4:30   -       -0430   1965
+                       -4:00   -       AST
+Link   America/Curacao America/Kralendijk
+Link   America/Curacao America/Lower_Princes
+
 # Dominica
 Zone America/Dominica  -4:05:36 -      LMT     1911 Jul  1  0:01 # Roseau
                        -4:00   -       AST
@@ -340,6 +643,7 @@ Zone        America/Grenada -4:07:00 -      LMT     1911 Jul # St George's
 Zone America/Guadeloupe        -4:06:08 -      LMT     1911 Jun  8 # Pointe-à-Pitre
                        -4:00    -      AST
 
+
 # Canada
 #
 # From Paul Eggert (2015-03-24):
@@ -351,7 +655,6 @@ Zone America/Guadeloupe     -4:06:08 -      LMT     1911 Jun  8 # Pointe-à-Pitre
 # Pottenger data.  The post-1970 entries have been corrected, but the
 # pre-1970 entries are unchecked and probably have errors.
 #
-# Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 Rule   Mont    1917    only    -       Mar     25      2:00    1:00    D
 Rule   Mont    1917    only    -       Apr     24      0:00    0       S
 Rule   Mont    1919    only    -       Mar     31      2:30    1:00    D
@@ -387,6 +690,48 @@ Zone America/Montreal      -4:54:16 -      LMT     1884
 Zone America/Montserrat        -4:08:52 -      LMT     1911 Jul  1  0:01 # Cork Hill
                        -4:00   -       AST
 
+# The Bahamas
+#
+# For 1899 Milne gives -5:09:29.5; round that.
+#
+# From P Chan (2020-11-27, corrected on 2020-12-02):
+# There were two periods of DST observed in 1942-1945: 1942-05-01
+# midnight to 1944-12-31 midnight and 1945-02-01 to 1945-10-17 midnight.
+# "midnight" should mean 24:00 from the context.
+#
+# War Time Order 1942 [1942-05-01] and War Time (No. 2) Order 1942  [1942-09-29]
+# Appendix to the Statutes of 7 George VI. and the Year 1942. p 34, 43
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA34
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA43
+#
+# War Time Order 1943 [1943-03-31] and War Time Order 1944 [1943-12-29]
+# Appendix to the Statutes of 8 George VI. and the Year 1943. p 9-10, 28-29
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA9
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA28
+#
+# War Time Order 1945 [1945-01-31] and the Order which revoke War Time Order
+# 1945 [1945-10-16] Appendix to the Statutes of 9 George VI. and the Year
+# 1945. p 160, 247-248
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA160
+# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA247
+#
+# From Sue Williams (2006-12-07):
+# The Bahamas announced about a month ago that they plan to change their DST
+# rules to sync with the U.S. starting in 2007....
+# http://www.jonesbahamas.com/?c=45&a=10412
+
+Rule   Bahamas 1942    only    -       May      1      24:00   1:00    W
+Rule   Bahamas 1944    only    -       Dec     31      24:00   0       S
+Rule   Bahamas 1945    only    -       Feb      1      0:00    1:00    W
+Rule   Bahamas 1945    only    -       Aug     14      23:00u  1:00    P # Peace
+Rule   Bahamas 1945    only    -       Oct     17      24:00   0       S
+Rule   Bahamas 1964    1975    -       Oct     lastSun 2:00    0       S
+Rule   Bahamas 1964    1975    -       Apr     lastSun 2:00    1:00    D
+
+Zone   America/Nassau  -5:09:30 -      LMT     1912 Mar 2
+                       -5:00   Bahamas E%sT    1976
+                       -5:00   US      E%sT
+
 # United States
 #
 # From Paul Eggert (2018-03-18):
@@ -411,6 +756,12 @@ Zone America/Montserrat    -4:08:52 -      LMT     1911 Jul  1  0:01 # Cork Hill
 # https://cdnc.ucr.edu/cgi-bin/cdnc?a=d&d=DS19470110
 # front page reports on end.
 
+# Trinidad and Tobago
+Zone America/Port_of_Spain -4:06:04 -  LMT     1912 Mar 2
+                       -4:00   -       AST
+Link America/Port_of_Spain America/Marigot
+Link America/Port_of_Spain America/St_Barthelemy
+
 # Argentina
 # This entry was intended for the following areas, but has been superseded by
 # more detailed zones.
@@ -434,9 +785,10 @@ Zone America/St_Lucia      -4:04:00 -      LMT     1890 # Castries
                        -4:04:00 -      CMT     1912 # Castries Mean Time
                        -4:00   -       AST
 
-# Virgin Is
+# US Virgin Is
 Zone America/St_Thomas -4:19:44 -      LMT     1911 Jul # Charlotte Amalie
                        -4:00   -       AST
+Link America/St_Thomas America/Virgin
 
 # St Vincent and the Grenadines
 Zone America/St_Vincent        -4:04:56 -      LMT     1890 # Kingstown
@@ -447,11 +799,36 @@ Zone America/St_Vincent   -4:04:56 -      LMT     1890 # Kingstown
 Zone America/Tortola   -4:18:28 -      LMT     1911 Jul # Road Town
                        -4:00   -       AST
 
+# Dumont d'Urville, Île des Pétrels, -6640+14001, since 1956-11
+# <https://en.wikipedia.org/wiki/Dumont_d'Urville_Station> (2005-12-05)
+#
+# Another base at Port-Martin, 50km east, began operation in 1947.
+# It was destroyed by fire on 1952-01-14.
+#
+Zone Antarctica/DumontDUrville 0 -     -00     1947
+                       10:00   -       +10     1952 Jan 14
+                       0       -       -00     1956 Nov
+                       10:00   -       +10
+
 # McMurdo, Ross Island, since 1955-12
 Zone Antarctica/McMurdo        0       -       -00     1956
                        12:00   NZ      NZ%sT
 Link Antarctica/McMurdo Antarctica/South_Pole
 
+# Syowa, Antarctica
+#
+# From Hideyuki Suzuki (1999-02-06):
+# In all Japanese stations, +0300 is used as the standard time.
+#
+# Syowa station, which is the first antarctic station of Japan,
+# was established on 1957-01-29.  Since Syowa station is still the main
+# station of Japan, it's appropriate for the principal location.
+# See:
+# NIPR Antarctic Research Activities (1999-08-17)
+# http://www.nipr.ac.jp/english/ara01.html
+Zone Antarctica/Syowa  0       -       -00     1957 Jan 29
+                       3:00    -       +03
+
 # Yemen
 # Milne says 2:59:54 was the meridian of the saluting battery at Aden,
 # and that Yemen was at 1:55:56, the meridian of the Hagia Sophia.
@@ -711,6 +1088,8 @@ Zone       Europe/Skopje   1:25:44 -       LMT     1884
                        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
@@ -749,10 +1128,22 @@ Zone     Indian/Comoro   2:53:04 -       LMT     1911 Jul # Moroni, Gran Comoro
 Zone   Indian/Mayotte  3:00:56 -       LMT     1911 Jul # Mamoutzou
                        3:00    -       EAT
 
-# US minor outlying islands
+# Phoenix Islands, Kiribati
+# From Paul Eggert (2021-05-27):
+# Enderbury was inhabited 1860/1880s to mine guano, and 1938-03-06/1942-02-09
+# for aviation (ostensibly commercial, but military uses foreseen).
+# The 19th-century dates are approximate.  See Pacific/Kanton for
+# the currently-inhabited representative for this timezone.
+Zone Pacific/Enderbury 0       -       -00     1860
+                       -11:24:20 -     LMT     1885
+                       0       -       -00     1938 Mar  6
+                       -12:00  -       -12     1942 Feb  9
+                       0       -       -00
+
+# Johnston
 Zone Pacific/Johnston  -10:00  -       HST
 
-# US minor outlying islands
+# Midway
 #
 # From Mark Brader (2005-01-23):
 # [Fallacies and Fantasies of Air Transport History, by R.E.G. Davies,
@@ -775,3 +1166,7 @@ Zone Pacific/Saipan        -14:17:00 -     LMT     1844 Dec 31
                         9:00   -       +09     1969 Oct
                        10:00   -       +10     2000 Dec 23
                        10:00   -       ChST    # Chamorro Standard Time
+
+# Local Variables:
+# coding: utf-8
+# End:
index ec145b5adf9575f8c3524415dbba2254f1c4a366..23e0a3a5c5671cd303bd4046fc998e2f4c4b7399 100644 (file)
@@ -58,11 +58,12 @@ BEGIN {
                                zone_table, zone_NR >>"/dev/stderr"
                        status = 1
                }
-               split($1, cca, /,/)
-               cc = cca[1]
+               ccs = input_ccs[zone_NR] = $1
                coordinates = $2
                tz = $3
-               comments = $4
+               comments = input_comments[zone_NR] = $4
+               split(ccs, cca, /,/)
+               cc = cca[1]
 
                # Don't complain about a special case for Crimea in zone.tab.
                # FIXME: zone.tab should be removed, since it is obsolete.
@@ -77,12 +78,9 @@ BEGIN {
                cc0 = cc
                tz0 = tz
                tztab[tz] = 1
-               tz2comments[tz] = comments
                tz2NR[tz] = zone_NR
                for (i in cca) {
                    cc = cca[i]
-                   cctz = cc tz
-                   cctztab[cctz] = 1
                    if (cc2name[cc]) {
                        cc_used[cc]++
                    } else {
@@ -99,27 +97,27 @@ BEGIN {
                }
        }
 
-       for (cctz in cctztab) {
-               cc = substr (cctz, 1, 2)
-               tz = substr (cctz, 3)
-               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]) {
+       for (i = 1; i <= zone_NR; i++) {
+         ccs = input_ccs[i]
+         if (!ccs) continue
+         comments = input_comments[i]
+         split(ccs, cca, /,/)
+         used_max = 0
+          for (j in cca) {
+           cc = cca[j]
+           if (used_max < cc_used[cc]) {
+             used_max = cc_used[cc]
+           }
+         }
+         if (used_max <= 1 && comments) {
            printf "%s:%d: unnecessary comment '%s'\n", \
-               zone_table, tz2NR[tz], tz2comments[tz] \
-               >>"/dev/stderr"
-           tz2comments[tz] = 0
+             zone_table, i, comments \
+             >>"/dev/stderr"
            status = 1
-         } else if (comments_needed[tz] && !tz2comments[tz]) {
+         } else if (1 < cc_used[cc] && !comments) {
            printf "%s:%d: missing comment for %s\n", \
-             zone_table, tz2NR[tz], comments_needed[tz] \
+             zone_table, i, cc \
              >>"/dev/stderr"
-           tz2comments[tz] = 1
            status = 1
          }
        }
@@ -149,8 +147,8 @@ $1 ~ /^#/ { next }
                ruleUsed[$2] = 1
                if ($3 ~ /%/) rulePercentUsed[$2] = 1
        }
-       if (tz && tz ~ /\//) {
-               if (!tztab[tz]) {
+       if (tz && tz ~ /\// && tz !~ /^Etc\//) {
+               if (!tztab[tz] && FILENAME != "backward") {
                        printf "%s: no data for '%s'\n", zone_table, tz \
                                >>"/dev/stderr"
                        status = 1
@@ -173,7 +171,7 @@ END {
                }
        }
        for (tz in tztab) {
-               if (!zoneSeen[tz]) {
+               if (!zoneSeen[tz] && tz !~ /^Etc\//) {
                        printf "%s:%d: no Zone table for '%s'\n", \
                                zone_table, tz2NR[tz], tz >>"/dev/stderr"
                        status = 1
index d91e0ce5f8f732ae6efbad923946c9d95c42633c..208585de50e62b500711e0f3222ae43c7d32ece5 100644 (file)
@@ -68,7 +68,6 @@
 #        0:00       GMT  BST  BDST  Greenwich, British Summer
 #        0:00       GMT  IST        Greenwich, Irish Summer
 #        0:00       WET  WEST WEMT  Western Europe
-#        0:19:32.13 AMT* NST*       Amsterdam, Netherlands Summer (1835-1937)
 #        1:00       BST             British Standard (1968-1971)
 #        1:00       IST  GMT        Irish Standard (1968-) with winter DST
 #        1:00       CET  CEST CEMT  Central Europe
@@ -1803,6 +1802,10 @@ Zone     Europe/Rome     0:49:56 -       LMT     1866 Dec 12
                        1:00    Italy   CE%sT   1980
                        1:00    EU      CE%sT
 
+# Kosovo
+# See Europe/Belgrade.
+
+
 Link   Europe/Rome     Europe/Vatican
 Link   Europe/Rome     Europe/San_Marino
 
@@ -2153,6 +2156,10 @@ Zone     Europe/Monaco   0:29:32 -       LMT     1892 Jun  1
 # The data entries before 1945 are taken from
 # https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm
 
+# From Paul Eggert (2021-05-09):
+# I invented the abbreviations AMT for Amsterdam Mean Time and NST for
+# Netherlands Summer Time, used in the Netherlands from 1835 to 1937.
+
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
 Rule   Neth    1916    only    -       May      1      0:00    1:00    NST     # Netherlands Summer Time
 Rule   Neth    1916    only    -       Oct      1      0:00    0       AMT     # Amsterdam Mean Time
@@ -2379,12 +2386,10 @@ Rule    Port    1943    1945    -       Aug     Sat>=25 22:00s  1:00    S
 Rule   Port    1944    1945    -       Apr     Sat>=21 22:00s  2:00    M
 Rule   Port    1946    only    -       Apr     Sat>=1  23:00s  1:00    S
 Rule   Port    1946    only    -       Oct     Sat>=1  23:00s  0       -
-Rule   Port    1947    1949    -       Apr     Sun>=1   2:00s  1:00    S
-Rule   Port    1947    1949    -       Oct     Sun>=1   2:00s  0       -
-# Shanks & Pottenger say DST was observed in 1950; go with Whitman.
+# Whitman says DST was not observed in 1950; go with Shanks & Pottenger.
 # Whitman gives Oct lastSun for 1952 on; go with Shanks & Pottenger.
-Rule   Port    1951    1965    -       Apr     Sun>=1   2:00s  1:00    S
-Rule   Port    1951    1965    -       Oct     Sun>=1   2:00s  0       -
+Rule   Port    1947    1965    -       Apr     Sun>=1   2:00s  1:00    S
+Rule   Port    1947    1965    -       Oct     Sun>=1   2:00s  0       -
 Rule   Port    1977    only    -       Mar     27       0:00s  1:00    S
 Rule   Port    1977    only    -       Sep     25       0:00s  0       -
 Rule   Port    1978    1979    -       Apr     Sun>=1   0:00s  1:00    S
@@ -2780,8 +2785,26 @@ Zone Europe/Kaliningrad   1:22:00 -      LMT     1893 Apr
 # says he remembers that Samara opted out of the 1992-01-19 exception
 # 2 days before the switch.
 #
-#
-# From Paul Eggert (2016-03-18):
+# From Alois Treindl (2022-02-15):
+# the Russian wikipedia page
+# https://ru.wikipedia.org/wiki/Московское_время#Перемещение_границы_применения_московского_времени_на_восток
+# contains the sentence (in Google translation) "In the autumn of
+# 1981, Arkhangelsk, Vologda, Yaroslavl, Ivanovo, Vladimir, Ryazan,
+# Lipetsk, Voronezh, Rostov-on-Don, Krasnodar and regions to the east
+# of those named (about 30 in total) parted ways with Moscow time.
+# However, the convenience of common time with Moscow turned out to be
+# decisive - in 1982, these regions again switched to Moscow time."
+# Shanks International atlas has similar information, and also the
+# Russian book Zaitsev A., Kutalev D. A new astrologer's reference
+# book. Coordinates of cities and time corrections, - The World of
+# Urania, 2012 (Russian: Зайцев А., Куталёв Д., Новый справочник
+# астролога. Координаты городов и временные поправки).
+# To me it seems that an extra zone is needed, which starts with LMT
+# util 1919, later follows Moscow since 1930, but deviates from it
+# between 1 October 1981 until 1 April 1982.
+#
+#
+# From Paul Eggert (2022-02-15):
 # Given the above, we appear to be missing some Zone entries for the
 # chaotic early 1980s in Russia.  It's not clear what these entries
 # should be.  For now, sweep this under the rug and just document the
@@ -2828,7 +2851,7 @@ Zone Europe/Simferopol     2:16:24 -      LMT     1880
                         1:00   C-Eur   CE%sT   1944 Apr 13
                         3:00   Russia  MSK/MSD 1990
                         3:00   -       MSK     1990 Jul  1  2:00
-                        2:00   -       EET     1992
+                        2:00   -       EET     1992 Mar 20
 # Central Crimea used Moscow time 1994/1997.
 #
 # From Paul Eggert (2006-03-22):
@@ -2838,7 +2861,7 @@ Zone Europe/Simferopol     2:16:24 -      LMT     1880
 # sometime between the 1994 DST switches.  Shanks & Pottenger simply say
 # 1994-09-25 03:00, but that can't be right.  For now, guess it
 # changed in May.
-                        2:00   E-Eur   EE%sT   1994 May
+                        2:00   C-Eur   EE%sT   1994 May
 # From IATA SSIM (1994/1997), which also says that Kerch is still like Kiev.
                         3:00   E-Eur   MSK/MSD 1996 Mar 31  0:00s
                         3:00   1:00    MSD     1996 Oct 27  3:00s
@@ -3686,6 +3709,9 @@ Zone      Atlantic/Canary -1:01:36 -      LMT     1922 Mar # Las Palmas de Gran C.
 #
 # Source: The newspaper "Dagens Nyheter", 1916-10-01, page 7 upper left.
 
+# An extra-special abbreviation style is SET for Swedish Time (svensk
+# normaltid) 1879-1899, 3° west of the Stockholm Observatory.
+
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
 Zone Europe/Stockholm  1:12:12 -       LMT     1879 Jan  1
                        1:00:14 -       SET     1900 Jan  1 # Swedish Time
@@ -4002,6 +4028,27 @@ Link     Europe/Istanbul Asia/Istanbul   # Istanbul is in both continents.
 
 # Ukraine
 #
+# From Alois Triendl (2014-03-01):
+# REGULATION A N O V A on March 20, 1992 N 139 ...  means that from
+# 1992 on, Ukraine had DST with begin time at 02:00 am, on last Sunday
+# in March, and end time 03:00 am, last Sunday in September....
+# CABINET OF MINISTERS OF UKRAINE RESOLUTION on May 13, 1996 N 509
+# "On the order of computation time on the territory of Ukraine" ....
+# As this cabinet decision is from May 1996, it seems likely that the
+# transition in March 1996, which predates it, was still at 2:00 am
+# and not at 3:00 as would have been under EU rules.
+# This is why I have set the change to EU rules into May 1996,
+# so that the change in March is stil covered by the Ukraine rule.
+# The next change in October 1996 happened under EU rules....
+# TZ database holds three other zones for Ukraine.... I have not yet
+# worked out the consequences for these three zones, as we (me and my
+# US colleague David Cochrane) are still trying to get more
+# information upon these local deviations from Kiev rules.
+#
+# From Paul Eggert (2022-02-08):
+# For now, assume that Ukraine's other three zones followed the same rules,
+# except that Crimea switched to Moscow time in 1994 as described elsewhere.
+
 # From Igor Karpov, who works for the Ukrainian Ministry of Justice,
 # via Garrett Wollman (2003-01-27):
 # BTW, I've found the official document on this matter. It's government
@@ -4091,7 +4138,7 @@ Zone Europe/Kiev  2:02:04 -       LMT     1880
                        1:00    C-Eur   CE%sT   1943 Nov  6
                        3:00    Russia  MSK/MSD 1990 Jul  1  2:00
                        2:00    1:00    EEST    1991 Sep 29  3:00
-                       2:00    E-Eur   EE%sT   1995
+                       2:00    C-Eur   EE%sT   1996 May 13
                        2:00    EU      EE%sT
 # Transcarpathia used CET 1990/1991.
 # "Uzhhorod" is the transliteration of the Rusyn/Ukrainian pronunciation, but
@@ -4104,8 +4151,8 @@ Zone Europe/Uzhgorod      1:29:12 -       LMT     1890 Oct
                        3:00    Russia  MSK/MSD 1990
                        3:00    -       MSK     1990 Jul  1  2:00
                        1:00    -       CET     1991 Mar 31  3:00
-                       2:00    -       EET     1992
-                       2:00    E-Eur   EE%sT   1995
+                       2:00    -       EET     1992 Mar 20
+                       2:00    C-Eur   EE%sT   1996 May 13
                        2:00    EU      EE%sT
 # Zaporozh'ye and eastern Lugansk oblasts observed DST 1990/1991.
 # "Zaporizhia" is the transliteration of the Ukrainian name, but
@@ -4118,7 +4165,8 @@ Zone Europe/Zaporozhye    2:20:40 -       LMT     1880
                        3:00    -       MSK     1941 Aug 25
                        1:00    C-Eur   CE%sT   1943 Oct 25
                        3:00    Russia  MSK/MSD 1991 Mar 31  2:00
-                       2:00    E-Eur   EE%sT   1995
+                       2:00    E-Eur   EE%sT   1992 Mar 20
+                       2:00    C-Eur   EE%sT   1996 May 13
                        2:00    EU      EE%sT
 
 # Vatican City
index 3198d65146a5412f7590056b6b9842b42deb68fc..0f43115c8e53c547428e19c1c49857ba042c2ca8 100644 (file)
 #      current -- the update time stamp, the data and the name of the file
 #      will not change.
 #
-#      Updated through IERS Bulletin C61
-#      File expires on:  28 December 2021
+#      Updated through IERS Bulletin C63
+#      File expires on:  28 December 2022
 #
-#@     3849638400
+#@     3881174400
 #
 2272060800     10      # 1 Jan 1972
 2287785600     11      # 1 Jul 1972
 #      the hash line is also ignored in the
 #      computation.
 #
-#h     2ab8253d d4380d28 75f01343 381504f8 8f8a4bfc
+#h     732b2044 5863a938 b7e43179 1339c710 ded63837
index cf0df04c3c8eaa6f1fb875ea930b9767958740d8..ffa5eb806bf8e3de85f4775271140c2ebe84b4fa 100644 (file)
@@ -72,11 +72,11 @@ Leap        2016    Dec     31      23:59:60        +       S
 # Any additional leap seconds will come after this.
 # This Expires line is commented out for now,
 # so that pre-2020a zic implementations do not reject this file.
-#Expires 2021  Dec     28      00:00:00
+#Expires 2022  Dec     28      00:00:00
 
 # POSIX timestamps for the data in this file:
 #updated 1467936000 (2016-07-08 00:00:00 UTC)
-#expires 1640649600 (2021-12-28 00:00:00 UTC)
+#expires 1672185600 (2022-12-28 00:00:00 UTC)
 
-#      Updated through IERS Bulletin C61
-#      File expires on:  28 December 2021
+#      Updated through IERS Bulletin C63
+#      File expires on:  28 December 2022
index 75e115418a1e5cf523f5c38dd21d2bbdfda7a442..fb5c94bb7fb63a84666465d8caeafe3e64c7a4ec 100644 (file)
@@ -729,7 +729,11 @@ Zone America/Adak   12:13:22 -     LMT     1867 Oct 19 12:44:35
                        -11:00  US      B%sT    1983 Oct 30  2:00
                        -10:00  US      AH%sT   1983 Nov 30
                        -10:00  US      H%sT
-# The following switches don't quite make our 1970 cutoff.
+# The following switches don't make our 1970 cutoff.
+#
+# Kiska observed Tokyo date and time during Japanese occupation from
+# 1942-06-06 to 1943-07-29, and similarly for Attu from 1942-06-07 to
+# 1943-05-29 (all dates American).  Both islands are now uninhabited.
 #
 # Shanks writes that part of southwest Alaska (e.g. Aniak)
 # switched from -11:00 to -10:00 on 1968-09-22 at 02:00,
@@ -825,6 +829,8 @@ Zone America/Phoenix        -7:28:18 -      LMT     1883 Nov 18 11:31:42
                        -7:00   -       MST     1967
                        -7:00   US      M%sT    1968 Mar 21
                        -7:00   -       MST
+Link America/Phoenix America/Creston
+
 # From Arthur David Olson (1988-02-13):
 # A writer from the Inter Tribal Council of Arizona, Inc.,
 # notes in private correspondence dated 1987-12-28 that "Presently, only the
@@ -1593,24 +1599,7 @@ Zone America/Moncton     -4:19:08 -      LMT     1883 Dec  9
 # From Paul Eggert (2020-01-10):
 # See America/Toronto for most of Quebec, including Montreal.
 # See America/Halifax for the Îles de la Madeleine and the Listuguj reserve.
-#
-# Matthews and Vincent (1998) also write that Quebec east of the -63
-# meridian is supposed to observe AST, but residents as far east as
-# Natashquan use EST/EDT, and residents east of Natashquan use AST.
-# The Quebec department of justice writes in
-# "The situation in Minganie and Basse-Côte-Nord"
-# https://www.justice.gouv.qc.ca/en/department/ministre/functions-and-responsabilities/legal-time-in-quebec/the-situation-in-minganie-and-basse-cote-nord/
-# that the coastal strip from just east of Natashquan to Blanc-Sablon
-# observes Atlantic standard time all year round.
-# This common practice was codified into law as of 2007; see Legal Time Act,
-# CQLR c T-5.1 <http://legisquebec.gouv.qc.ca/en/ShowDoc/cs/T-5.1>.
-# For lack of better info, guess this practice began around 1970, contra to
-# Shanks & Pottenger who have this region observing AST/ADT.
-
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone America/Blanc-Sablon -3:48:28 -   LMT     1884
-                       -4:00   Canada  A%sT    1970
-                       -4:00   -       AST
+# See America/Puerto_Rico for east of Natashquan.
 
 # Ontario
 
@@ -1649,54 +1638,6 @@ Zone America/Blanc-Sablon -3:48:28 -     LMT     1884
 # time became a comic failure in Orillia. Toronto Star 2017-07-08.
 # https://www.thestar.com/news/insight/2017/07/08/bold-attempt-at-daylight-saving-time-became-a-comic-failure-in-orillia.html
 
-# From Paul Eggert (1997-10-17):
-# Mark Brader writes that an article in the 1997-10-14 Toronto Star
-# says that Atikokan, Ontario currently does not observe DST,
-# but will vote on 11-10 whether to use EST/EDT.
-# He also writes that the Ontario Time Act (1990, Chapter T.9)
-# http://www.gov.on.ca/MBS/english/publications/statregs/conttext.html
-# says that Ontario east of 90W uses EST/EDT, and west of 90W uses CST/CDT.
-# Officially Atikokan is therefore on CST/CDT, and most likely this report
-# concerns a non-official time observed as a matter of local practice.
-#
-# From Paul Eggert (2000-10-02):
-# Matthews and Vincent (1998) write that Atikokan, Pickle Lake, and
-# New Osnaburgh observe CST all year, that Big Trout Lake observes
-# CST/CDT, and that Upsala and Shebandowan observe EST/EDT, all in
-# violation of the official Ontario rules.
-#
-# From Paul Eggert (2006-07-09):
-# Chris Walton (2006-07-06) mentioned an article by Stephanie MacLellan in the
-# 2005-07-21 Chronicle-Journal, which said:
-#
-#      The clocks in Atikokan stay set on standard time year-round.
-#      This means they spend about half the time on central time and
-#      the other half on eastern time.
-#
-#      For the most part, the system works, Mayor Dennis Brown said.
-#
-#      "The majority of businesses in Atikokan deal more with Eastern
-#      Canada, but there are some that deal with Western Canada," he
-#      said.  "I don't see any changes happening here."
-#
-# Walton also writes "Supposedly Pickle Lake and Mishkeegogamang
-# [New Osnaburgh] follow the same practice."
-
-# From Garry McKinnon (2006-07-14) via Chris Walton:
-# I chatted with a member of my board who has an outstanding memory
-# and a long history in Atikokan (and in the telecom industry) and he
-# can say for certain that Atikokan has been practicing the current
-# time keeping since 1952, at least.
-
-# From Paul Eggert (2006-07-17):
-# Shanks & Pottenger say that Atikokan has agreed with Rainy River
-# ever since standard time was introduced, but the information from
-# McKinnon sounds more authoritative.  For now, assume that Atikokan
-# switched to EST immediately after WWII era daylight saving time
-# ended.  This matches the old (less-populous) America/Coral_Harbour
-# entry since our cutoff date of 1970, so we can move
-# America/Coral_Harbour to the 'backward' file.
-
 # From Mark Brader (2010-03-06):
 #
 # Currently the database has:
@@ -1827,6 +1768,7 @@ Zone America/Toronto      -5:17:32 -      LMT     1895
                        -5:00   Canada  E%sT    1946
                        -5:00   Toronto E%sT    1974
                        -5:00   Canada  E%sT
+Link America/Toronto America/Nassau
 Zone America/Thunder_Bay -5:57:00 -    LMT     1895
                        -6:00   -       CST     1910
                        -5:00   -       EST     1942
@@ -1842,11 +1784,7 @@ Zone America/Rainy_River -6:18:16 -      LMT     1895
                        -6:00   Canada  C%sT    1940 Sep 29
                        -6:00   1:00    CDT     1942 Feb  9  2:00s
                        -6:00   Canada  C%sT
-Zone America/Atikokan  -6:06:28 -      LMT     1895
-                       -6:00   Canada  C%sT    1940 Sep 29
-                       -6:00   1:00    CDT     1942 Feb  9  2:00s
-                       -6:00   Canada  C%sT    1945 Sep 30  2:00
-                       -5:00   -       EST
+# For Atikokan see America/Panama.
 
 
 # Manitoba
@@ -2037,60 +1975,6 @@ Zone America/Edmonton    -7:33:52 -      LMT     1906 Sep
 # Shanks & Pottenger write that since 1970 most of this region has
 # been like Vancouver.
 # Dawson Creek uses MST.  Much of east BC is like Edmonton.
-# Matthews and Vincent (1998) write that Creston is like Dawson Creek.
-
-# It seems though that (re: Creston) is not entirely correct:
-
-# From Chris Walton (2011-12-01):
-# There are two areas within the Canadian province of British Columbia
-# that do not currently observe daylight saving:
-# a) The Creston Valley (includes the town of Creston and surrounding area)
-# b) The eastern half of the Peace River Regional District
-# (includes the cities of Dawson Creek and Fort St. John)
-
-# Earlier this year I stumbled across a detailed article about the time
-# keeping history of Creston; it was written by Tammy Hardwick who is the
-# manager of the Creston & District Museum. The article was written in May 2009.
-# http://www.ilovecreston.com/?p=articles&t=spec&ar=260
-# According to the article, Creston has not changed its clocks since June 1918.
-# i.e. Creston has been stuck on UT-7 for 93 years.
-# Dawson Creek, on the other hand, changed its clocks as recently as April 1972.
-
-# Unfortunately the exact date for the time change in June 1918 remains
-# unknown and will be difficult to ascertain.  I e-mailed Tammy a few months
-# ago to ask if Sunday June 2 was a reasonable guess.  She said it was just
-# as plausible as any other date (in June).  She also said that after writing
-# the article she had discovered another time change in 1916; this is the
-# subject of another article which she wrote in October 2010.
-# http://www.creston.museum.bc.ca/index.php?module=comments&uop=view_comment&cm+id=56
-
-# Here is a summary of the three clock change events in Creston's history:
-# 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.
-# 3. June 1918: switch to Pacific Daylight Time (GMT-7)
-# Exact date in June unknown; Sunday June 2 is a reasonable guess.
-# note 1:
-# On Oct 27/1918 when daylight saving ended in the rest of Canada,
-# Creston did not change its clocks.
-# note 2:
-# During WWII when the Federal Government legislated a mandatory clock change,
-# Creston did not oblige.
-# note 3:
-# There is no guarantee that Creston will remain on Mountain Standard Time
-# (UTC-7) forever.
-# The subject was debated at least once this year by the town Council.
-# http://www.bclocalnews.com/kootenay_rockies/crestonvalleyadvance/news/116760809.html
-
-# During a period WWII, summer time (Daylight saying) was mandatory in Canada.
-# In Creston, that was handled by shifting the area to PST (-8:00) then applying
-# summer time to cause the offset to be -7:00, the same as it had been before
-# the change.  It can be argued that the timezone abbreviation during this
-# period should be PDT rather than MST, but that doesn't seem important enough
-# (to anyone) to further complicate the rules.
-
-# The transition dates (and times) are guesses.
 
 # From Matt Johnson (2015-09-21):
 # Fort Nelson, BC, Canada will cancel DST this year.  So while previously they
@@ -2144,10 +2028,7 @@ Zone America/Fort_Nelson -8:10:47 -      LMT     1884
                        -8:00   Vanc    P%sT    1987
                        -8:00   Canada  P%sT    2015 Mar  8  2:00
                        -7:00   -       MST
-Zone America/Creston   -7:46:04 -      LMT     1884
-                       -7:00   -       MST     1916 Oct 1
-                       -8:00   -       PST     1918 Jun 2
-                       -7:00   -       MST
+# For Creston see America/Phoenix.
 
 # Northwest Territories, Nunavut, Yukon
 
@@ -2929,64 +2810,61 @@ Zone America/Tijuana    -7:48:04 -      LMT     1922 Jan  1  0:11:56
 
 # Anguilla
 # Antigua and Barbuda
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
 
-# Bahamas
-#
-# For 1899 Milne gives -5:09:29.5; round that.
-#
-# From P Chan (2020-11-27, corrected on 2020-12-02):
-# There were two periods of DST observed in 1942-1945: 1942-05-01
-# midnight to 1944-12-31 midnight and 1945-02-01 to 1945-10-17 midnight.
-# "midnight" should mean 24:00 from the context.
-#
-# War Time Order 1942 [1942-05-01] and War Time (No. 2) Order 1942  [1942-09-29]
-# Appendix to the Statutes of 7 George VI. and the Year 1942. p 34, 43
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA34
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA3-PA43
-#
-# War Time Order 1943 [1943-03-31] and War Time Order 1944 [1943-12-29]
-# Appendix to the Statutes of 8 George VI. and the Year 1943. p 9-10, 28-29
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA9
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA4-PA28
-#
-# War Time Order 1945 [1945-01-31] and the Order which revoke War Time Order
-# 1945 [1945-10-16] Appendix to the Statutes of 9 George VI. and the Year
-# 1945. p 160, 247-248
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA160
-# https://books.google.com/books?id=5rlNAQAAIAAJ&pg=RA6-PA247
-#
-# From Sue Williams (2006-12-07):
-# The Bahamas announced about a month ago that they plan to change their DST
-# rules to sync with the U.S. starting in 2007....
-# http://www.jonesbahamas.com/?c=45&a=10412
+# The Bahamas
+# See America/Toronto.
 
-# Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
-Rule   Bahamas 1942    only    -       May      1      24:00   1:00    W
-Rule   Bahamas 1944    only    -       Dec     31      24:00   0       S
-Rule   Bahamas 1945    only    -       Feb      1      0:00    1:00    W
-Rule   Bahamas 1945    only    -       Aug     14      23:00u  1:00    P # Peace
-Rule   Bahamas 1945    only    -       Oct     17      24:00   0       S
-Rule   Bahamas 1964    1975    -       Oct     lastSun 2:00    0       S
-Rule   Bahamas 1964    1975    -       Apr     lastSun 2:00    1:00    D
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone   America/Nassau  -5:09:30 -      LMT     1912 Mar 2
-                       -5:00   Bahamas E%sT    1976
-                       -5:00   US      E%sT
 
 # Barbados
 
 # For 1899 Milne gives -3:58:29.2; round that.
 
+# From P Chan (2020-12-09 and 2020-12-11):
+# Standard time of GMT-4 was adopted in 1911.
+# Definition of Time Act, 1911 (1911-7) [1911-08-28]
+# 1912, Laws of Barbados (5 v.), OCLC Number: 919801291, Vol. 4, Image No. 522
+# 1944, Laws of Barbados (5 v.), OCLC Number: 84548697, Vol. 4, Image No. 122
+# http://llmc.com/browse.aspx?type=2&coll=85&div=297
+#
+# DST was observed in 1942-44.
+# Defence (Daylight Saving) Regulations, 1942, 1942-04-13
+# Defence (Daylight Saving) (Repeal) Regulations, 1942, 1942-08-22
+# Defence (Daylight Saving) Regulations, 1943, 1943-04-16
+# Defence (Daylight Saving) (Repeal) Regulations, 1943, 1943-09-01
+# Defence (Daylight Saving) Regulations, 1944, 1944-03-21
+# [Defence (Daylight Saving) (Amendment) Regulations 1944, 1944-03-28]
+# Defence (Daylight Saving) (Repeal) Regulations, 1944, 1944-08-30
+#
+# 1914-, Subsidiary Legis., Annual Vols. OCLC Number: 226290591
+# 1942: Image Nos. 527-528, 555-556
+# 1943: Image Nos. 178-179, 198
+# 1944: Image Nos. 113-115, 129
+# http://llmc.com/titledescfull.aspx?type=2&coll=85&div=297&set=98437
+#
+# From Tim Parenti (2021-02-20):
+# The transitions below are derived from P Chan's sources, except that the 1977
+# through 1980 transitions are from Shanks & Pottenger since we have no better
+# data there.  Of particular note, the 1944 DST regulation only advanced the
+# time to "exactly three and a half hours later than Greenwich mean time", as
+# opposed to "three hours" in the 1942 and 1943 regulations.
+
 # Rule NAME    FROM    TO      -       IN      ON      AT      SAVE    LETTER/S
+Rule   Barb    1942    only    -       Apr     19      5:00u   1:00    D
+Rule   Barb    1942    only    -       Aug     31      6:00u   0       S
+Rule   Barb    1943    only    -       May      2      5:00u   1:00    D
+Rule   Barb    1943    only    -       Sep      5      6:00u   0       S
+Rule   Barb    1944    only    -       Apr     10      5:00u   0:30    -
+Rule   Barb    1944    only    -       Sep     10      6:00u   0       S
 Rule   Barb    1977    only    -       Jun     12      2:00    1:00    D
 Rule   Barb    1977    1978    -       Oct     Sun>=1  2:00    0       S
 Rule   Barb    1978    1980    -       Apr     Sun>=15 2:00    1:00    D
 Rule   Barb    1979    only    -       Sep     30      2:00    0       S
 Rule   Barb    1980    only    -       Sep     25      2:00    0       S
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone America/Barbados  -3:58:29 -      LMT     1924 # Bridgetown
-                       -3:58:29 -      BMT     1932 # Bridgetown Mean Time
+Zone America/Barbados  -3:58:29 -      LMT     1911 Aug 28 # Bridgetown
+                       -4:00   Barb    A%sT    1944
+                       -4:00   Barb    AST/-0330 1945
                        -4:00   Barb    A%sT
 
 # Belize
@@ -3148,6 +3026,9 @@ Zone Atlantic/Bermuda     -4:19:18 -      LMT     1890    # Hamilton
                        -4:00   Canada  A%sT    1976
                        -4:00   US      A%sT
 
+# Caribbean Netherlands
+# See America/Puerto_Rico.
+
 # Cayman Is
 # See America/Panama.
 
@@ -3376,7 +3257,7 @@ Zone      America/Havana  -5:29:28 -      LMT     1890
                        -5:00   Cuba    C%sT
 
 # Dominica
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
 
 # Dominican Republic
 
@@ -3428,7 +3309,7 @@ Zone America/El_Salvador -5:56:48 -       LMT     1921 # San Salvador
 # Guadeloupe
 # St Barthélemy
 # St Martin (French part)
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
 
 # Guatemala
 #
@@ -3615,7 +3496,7 @@ Zone America/Martinique   -4:04:20 -      LMT     1890        # Fort-de-France
                        -4:00   -       AST
 
 # Montserrat
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
 
 # Nicaragua
 #
@@ -3687,6 +3568,7 @@ Zone      America/Managua -5:45:08 -      LMT     1890
 Zone   America/Panama  -5:18:08 -      LMT     1890
                        -5:19:36 -      CMT     1908 Apr 22 # Colón Mean Time
                        -5:00   -       EST
+Link America/Panama America/Atikokan
 Link America/Panama America/Cayman
 
 # Puerto Rico
@@ -3696,10 +3578,29 @@ Zone America/Puerto_Rico -4:24:25 -     LMT     1899 Mar 28 12:00 # San Juan
                        -4:00   -       AST     1942 May  3
                        -4:00   US      A%sT    1946
                        -4:00   -       AST
+Link America/Puerto_Rico America/Anguilla
+Link America/Puerto_Rico America/Antigua
+Link America/Puerto_Rico America/Aruba
+Link America/Puerto_Rico America/Curacao
+Link America/Puerto_Rico America/Blanc-Sablon  # Quebec (Lower North Shore)
+Link America/Puerto_Rico America/Dominica
+Link America/Puerto_Rico America/Grenada
+Link America/Puerto_Rico America/Guadeloupe
+Link America/Puerto_Rico America/Kralendijk    # Caribbean Netherlands
+Link America/Puerto_Rico America/Lower_Princes # Sint Maarten
+Link America/Puerto_Rico America/Marigot       # St Martin (French part)
+Link America/Puerto_Rico America/Montserrat
+Link America/Puerto_Rico America/Port_of_Spain # Trinidad & Tobago
+Link America/Puerto_Rico America/St_Barthelemy # St Barthélemy
+Link America/Puerto_Rico America/St_Kitts      # St Kitts & Nevis
+Link America/Puerto_Rico America/St_Lucia
+Link America/Puerto_Rico America/St_Thomas     # Virgin Islands (US)
+Link America/Puerto_Rico America/St_Vincent
+Link America/Puerto_Rico America/Tortola       # Virgin Islands (UK)
 
 # St Kitts-Nevis
 # St Lucia
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
 
 # St Pierre and Miquelon
 # There are too many St Pierres elsewhere, so we'll use 'Miquelon'.
@@ -3710,7 +3611,10 @@ Zone America/Miquelon    -3:44:40 -      LMT     1911 May 15 # St Pierre
                        -3:00   Canada  -03/-02
 
 # St Vincent and the Grenadines
-# See America/Port_of_Spain.
+# See America/Puerto_Rico.
+
+# Sint Maarten
+# See America/Puerto_Rico.
 
 # Turks and Caicos
 #
@@ -3781,8 +3685,8 @@ Zone America/Grand_Turk   -4:44:32 -      LMT     1890
                        -5:00   US      E%sT
 
 # British Virgin Is
-# Virgin Is
-# See America/Port_of_Spain.
+# US Virgin Is
+# See America/Puerto_Rico.
 
 
 # Local Variables:
index aad8b2dbd1905894ed2288c27fffad8c1f662da3..c6249cd71710a990ba7eef7c5c5202e77f5feb5e 100644 (file)
@@ -574,7 +574,7 @@ Zone America/Argentina/Ushuaia -4:33:12 - LMT       1894 Oct 31
                        -3:00   -       -03
 
 # Aruba
-Link America/Curacao America/Aruba
+# See America/Puerto_Rico.
 
 # Bolivia
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
@@ -1086,7 +1086,7 @@ Zone America/Rio_Branco   -4:31:12 -      LMT     1914
 
 # Chile
 
-# From Paul Eggert (2015-04-03):
+# From Paul Eggert (2022-03-15):
 # Shanks & Pottenger says America/Santiago introduced standard time in
 # 1890 and rounds its UT offset to 70W40; guess that in practice this
 # was the same offset as in 1916-1919.  It also says Pacific/Easter
@@ -1109,7 +1109,7 @@ Zone America/Rio_Branco   -4:31:12 -      LMT     1914
 # Historia de la hora oficial de Chile (retrieved 2012-10-24).  See:
 # https://web.archive.org/web/20121024234627/http://www.horaoficial.cl/horaof.htm
 # A fancier Spanish version (requiring mouse-clicking) is at:
-# http://www.horaoficial.cl/historia_hora.html
+# http://www.horaoficial.cl/historia_hora.php
 # Conflicts between [1] and [2] were resolved as follows:
 #
 #  - [1] says the 1910 transition was Jan 1, [2] says Jan 10 and cites
@@ -1118,7 +1118,8 @@ Zone America/Rio_Branco   -4:31:12 -      LMT     1914
 #  - [1] says SMT was -4:42:45, [2] says Chile's official time from
 #    1916 to 1919 was -4:42:46.3, the meridian of Chile's National
 #    Astronomical Observatory (OAN), then located in what is now
-#    Quinta Normal in Santiago.  Go with [2], rounding it to -4:42:46.
+#    Quinta Normal in Santiago.  Go with [1], as this matches the meridian
+#    referred to by the relevant Chilean laws to this day.
 #
 #  - [1] says the 1918 transition was Sep 1, [2] says Sep 10 and cites
 #    Boletín No. 22, Aviso No. 129/1918 (1918-08-23).  Go with [2].
@@ -1140,6 +1141,32 @@ Zone America/Rio_Branco  -4:31:12 -      LMT     1914
 # this is known to work for DST transitions starting in 2008 and
 # may well be true for earlier transitions.
 
+# From Tim Parenti (2022-03-15):
+# For a brief period of roughly six weeks in 1946, DST was only observed on an
+# emergency basis in specific regions of central Chile; namely, "the national
+# territory between the provinces of Coquimbo and Concepción, inclusive".
+# This was enacted by Decree 3,891, dated 1946-07-13, and took effect
+# 1946-07-14 24:00, advancing these central regions to -03.
+# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460715/#page/1
+# The decree contemplated "[t]hat this advancement of the Official Time, even
+# though it has been proposed for the cities of Santiago and Valparaíso only,
+# must be agreed with that of other cities, due to the connection of various
+# activities that require it, such as, for example, the operation of rail
+# services".  It was originally set to expire after 30 days but was extended
+# through 1946-08-31 by Decree 4,506, dated 1946-08-13.
+# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460814/#page/1
+#
+# Law Number 8,522, promulgated 1946-08-27, reunified Chilean clocks at their
+# new "Summer Time" of -04, reckoned as that of "the meridian of the
+# Astronomical Observatory of Lo Espejo, advanced by 42 minutes and 45
+# seconds".
+# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19460828/#page/1
+# After a brief "Winter Time" stint at -05 beginning 1947-04-01, Law Number
+# 8,777, promulgated 1947-05-17, established year-round -04 "from 23:00 on the
+# second day after it is published in the 'Diario Oficial'."  It was published
+# on Monday 1947-05-19 and so took effect from Wednesday 1947-05-21 23:00.
+# https://www.diariooficial.interior.gob.cl/versiones-anteriores/do-h/19470519/#page/1
+
 # From Eduardo Krell (1995-10-19):
 # The law says to switch to DST at midnight [24:00] on the second SATURDAY
 # of October....  The law is the same for March and October.
@@ -1298,12 +1325,12 @@ Rule    Chile   2019    max     -       Sep     Sun>=2  4:00u   1:00    -
 # IATA SSIM anomalies: (1992-02) says 1992-03-14;
 # (1996-09) says 1998-03-08.  Ignore these.
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone America/Santiago  -4:42:46 -      LMT     1890
-                       -4:42:46 -      SMT     1910 Jan 10 # Santiago Mean Time
+Zone America/Santiago  -4:42:45 -      LMT     1890
+                       -4:42:45 -      SMT     1910 Jan 10 # Santiago Mean Time
                        -5:00   -       -05     1916 Jul  1
-                       -4:42:46 -      SMT     1918 Sep 10
+                       -4:42:45 -      SMT     1918 Sep 10
                        -4:00   -       -04     1919 Jul  1
-                       -4:42:46 -      SMT     1927 Sep  1
+                       -4:42:45 -      SMT     1927 Sep  1
                        -5:00   Chile   -05/-04 1932 Sep  1
                        -4:00   -       -04     1942 Jun  1
                        -5:00   -       -05     1942 Aug  1
@@ -1313,11 +1340,11 @@ Zone America/Santiago   -4:42:46 -      LMT     1890
                        -5:00   -       -05     1947 May 21 23:00
                        -4:00   Chile   -04/-03
 Zone America/Punta_Arenas -4:43:40 -   LMT     1890
-                       -4:42:46 -      SMT     1910 Jan 10
+                       -4:42:45 -      SMT     1910 Jan 10
                        -5:00   -       -05     1916 Jul  1
-                       -4:42:46 -      SMT     1918 Sep 10
+                       -4:42:45 -      SMT     1918 Sep 10
                        -4:00   -       -04     1919 Jul  1
-                       -4:42:46 -      SMT     1927 Sep  1
+                       -4:42:45 -      SMT     1927 Sep  1
                        -5:00   Chile   -05/-04 1932 Sep  1
                        -4:00   -       -04     1942 Jun  1
                        -5:00   -       -05     1942 Aug  1
@@ -1369,35 +1396,14 @@ Zone    America/Bogota  -4:56:16 -      LMT     1884 Mar 13
 # no information; probably like America/Bogota
 
 # Curaçao
-
-# Milne gives 4:35:46.9 for Curaçao mean time; round to nearest.
+# See America/Puerto_Rico.
 #
-# From Paul Eggert (2006-03-22):
-# Shanks & Pottenger say that The Bottom and Philipsburg have been at
-# -4:00 since standard time was introduced on 1912-03-02; and that
-# Kralendijk and Rincon used Kralendijk Mean Time (-4:33:08) from
-# 1912-02-02 to 1965-01-01.  The former is dubious, since S&P also say
-# Saba Island has been like Curaçao.
-# This all predates our 1970 cutoff, though.
-#
-# By July 2007 Curaçao and St Maarten are planned to become
-# associated states within the Netherlands, much like Aruba;
-# Bonaire, Saba and St Eustatius would become directly part of the
-# Netherlands as Kingdom Islands.  This won't affect their time zones
-# though, as far as we know.
-#
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone   America/Curacao -4:35:47 -      LMT     1912 Feb 12 # Willemstad
-                       -4:30   -       -0430   1965
-                       -4:00   -       AST
-
 # From Arthur David Olson (2011-06-15):
 # use links for places with new iso3166 codes.
 # The name "Lower Prince's Quarter" is both longer than fourteen characters
-# and contains an apostrophe; use "Lower_Princes" below.
-
-Link   America/Curacao America/Lower_Princes   # Sint Maarten
-Link   America/Curacao America/Kralendijk      # Caribbean Netherlands
+# and contains an apostrophe; use "Lower_Princes"....
+# From Paul Eggert (2021-09-29):
+# These backward-compatibility links now are in the 'northamerica' file.
 
 # Ecuador
 #
@@ -1540,11 +1546,40 @@ Zone America/Cayenne    -3:29:20 -      LMT     1911 Jul
                        -3:00   -       -03
 
 # Guyana
+
+# From P Chan (2020-11-27):
+# https://books.google.com/books?id=5-5CAQAAMAAJ&pg=SA1-PA547
+# The Official Gazette of British Guiana. (New Series.) Vol. XL. July to
+# December, 1915, p 1547, lists as several notes:
+# "Local Mean Time 3 hours 52 mins. 39 secs. slow of Greenwich Mean Time
+# (Georgetown.) From 1st August, 1911, British Guiana Standard Mean Time 4
+# hours slow of Greenwich Mean Time, by notice in Official Gazette on 1st July,
+# 1911.  From 1st March, 1915, British Guiana Standard Mean Time 3 hours 45
+# mins. 0 secs. slow of Greenwich Mean Time, by notice in Official Gazette on
+# 23rd January, 1915."
+#
+# https://parliament.gov.gy/documents/acts/10923-act_no._27_of_1975_-_interpretation_and_general_clauses_(amendment)_act_1975.pdf
+# Interpretation and general clauses (Amendment) Act 1975 (Act No. 27 of 1975)
+# [dated 1975-07-31]
+# "This Act...shall come into operation on 1st August, 1975."
+# "...where any expression of time occurs...the time referred to shall signify
+# the standard time of Guyana which shall be three hours behind Greenwich Mean
+# Time."
+#
+# Circular No. 10/1992 dated 1992-03-20
+# https://dps.gov.gy/wp-content/uploads/2018/12/1992-03-20-Circular-010.pdf
+# "...cabinet has decided that with effect from Sunday 29th March, 1992, Guyana
+# Standard Time would be re-established at 01:00 hours by adjusting the hands
+# of the clock back to 24:00 hours."
+# Legislated in the Interpretation and general clauses (Amendment) Act 1992
+# (Act No. 6 of 1992) [passed 1992-03-27, published 1992-04-18]
+# https://parliament.gov.gy/documents/acts/5885-6_of_1992_interpretation_and_general_clauses_(amendment)_act_1992.pdf
+
 # Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone   America/Guyana  -3:52:40 -      LMT     1915 Mar    # Georgetown
-                       -3:45   -       -0345   1975 Jul 31
-                       -3:00   -       -03     1991
-# IATA SSIM (1996-06) says -4:00.  Assume a 1991 switch.
+Zone   America/Guyana  -3:52:39 -      LMT     1911 Aug  1 # Georgetown
+                       -4:00   -       -04     1915 Mar  1
+                       -3:45   -       -0345   1975 Aug  1
+                       -3:00   -       -03     1992 Mar 29  1:00
                        -4:00   -       -04
 
 # Paraguay
@@ -1685,24 +1720,7 @@ Zone America/Paramaribo  -3:40:40 -      LMT     1911
                        -3:00   -       -03
 
 # Trinidad and Tobago
-# Zone NAME            STDOFF  RULES   FORMAT  [UNTIL]
-Zone America/Port_of_Spain -4:06:04 -  LMT     1912 Mar 2
-                       -4:00   -       AST
-
-# These all agree with Trinidad and Tobago since 1970.
-Link America/Port_of_Spain America/Anguilla
-Link America/Port_of_Spain America/Antigua
-Link America/Port_of_Spain America/Dominica
-Link America/Port_of_Spain America/Grenada
-Link America/Port_of_Spain America/Guadeloupe
-Link America/Port_of_Spain America/Marigot     # St Martin (French part)
-Link America/Port_of_Spain America/Montserrat
-Link America/Port_of_Spain America/St_Barthelemy # St Barthélemy
-Link America/Port_of_Spain America/St_Kitts    # St Kitts & Nevis
-Link America/Port_of_Spain America/St_Lucia
-Link America/Port_of_Spain America/St_Thomas   # Virgin Islands (US)
-Link America/Port_of_Spain America/St_Vincent
-Link America/Port_of_Spain America/Tortola     # Virgin Islands (UK)
+# See America/Puerto_Rico.
 
 # Uruguay
 # From Paul Eggert (1993-11-18):
index 28f6b8ec51a8a10de657c3d2ca7dab15a9cb9194..28cc88eafdef21b2b4fce4f820e6ddd44e8447ec 100644 (file)
@@ -42,12 +42,13 @@ href="https://en.wikipedia.org/wiki/Unix_time">POSIX Epoch</a>
 (1970-01-01 00:00:00 <a
 href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time"><abbr
 title="Coordinated Universal Time">UTC</abbr></a>).
-The database labels each timezone with a notable location and
-records all known clock transitions for that location.
 Although 1970 is a somewhat-arbitrary cutoff, there are significant
 challenges to moving the cutoff earlier even by a decade or two, due
 to the wide variety of local practices before computer timekeeping
 became prevalent.
+Most timezones correspond to a notable location and the database
+records all known clock transitions for that location;
+some timezones correspond instead to a fixed <abbr>UTC</abbr> offset.
 </p>
 
 <p>
@@ -58,8 +59,9 @@ specifies current standard time. For example, applications that deal
 with current and future timestamps in the traditional North
 American mountain time zone can choose from the timezones
 <code>America/Denver</code> which observes US-style daylight saving
-time, <code>America/Mazatlan</code> which observes Mexican-style DST,
-and <code>America/Phoenix</code> which does not observe DST.
+time (<abbr>DST</abbr>),
+<code>America/Mazatlan</code> which observes Mexican-style <abbr>DST</abbr>,
+and <code>America/Phoenix</code> which does not observe <abbr>DST</abbr>.
 Applications that also deal with past timestamps in the mountain time
 zone can choose from over a dozen timezones, such as
 <code>America/Boise</code>, <code>America/Edmonton</code>, and
@@ -68,7 +70,7 @@ time but differs from other timezones for some timestamps after 1970.
 </p>
 
 <p>
-Clock transitions before 1970 are recorded for each timezone,
+Clock transitions before 1970 are recorded for location-based timezones,
 because most systems support timestamps before 1970 and could
 misbehave if data entries were omitted for pre-1970 transitions.
 However, the database is not designed for and does not suffice for
@@ -190,8 +192,8 @@ in decreasing order of importance:
     <code>TZ</code> strings</a>.
     A file name component must not exceed 14 characters or start with
     '<code>-</code>'.
-    E.g., prefer <code>Asia/Brunei</code> to
-    <code>Asia/Bandar_Seri_Begawan</code>.
+    E.g., prefer <code>America/Noronha</code> to
+    <code>America/Fernando_de_Noronha</code>.
     Exceptions: see the discussion of legacy names below.
   </li>
   <li>
@@ -294,7 +296,7 @@ in decreasing order of importance:
   </li>
   <li>
     If a name is changed, put its old spelling in the
-    '<code>backward</code>' file.
+    '<code>backward</code>' file as a link to the new spelling.
     This means old spellings will continue to work.
     Ordinarily a name change should occur only in the rare case when
     a location's consensus English-language spelling changes; for example,
@@ -346,22 +348,37 @@ timestamps correctly and it increased maintenance burden.
 </ul>
 
 <p>
-The file '<code>zone1970.tab</code>' lists geographical locations used
+The file <code>zone1970.tab</code> lists geographical locations used
 to name timezones.
 It is intended to be an exhaustive list of names for geographic
 regions as described above; this is a subset of the timezones in the data.
-Although a '<code>zone1970.tab</code>' location's
+Although a <code>zone1970.tab</code> location's
 <a href="https://en.wikipedia.org/wiki/Longitude">longitude</a>
 corresponds to
 its <a href="https://en.wikipedia.org/wiki/Local_mean_time">local mean
 time (<abbr>LMT</abbr>)</a> offset with one hour for every 15&deg;
 east longitude, this relationship is not exact.
+The backward-compatibility file <code>zone.tab</code> is similar
+but conforms to the older-version guidelines related to <abbr>ISO</abbr> 3166-1;
+it lists only one country code per entry and unlike <code>zone1970.tab</code>
+it can list names defined in <code>backward</code>.
 </p>
 
 <p>
-Excluding '<code>backward</code>' should not affect the other data.
-If '<code>backward</code>' is excluded, excluding
-'<code>etcetera</code>' should not affect the remaining data.
+The database defines each timezone name to be a zone, or a link to a zone.
+The source file <code>backward</code> defines links for backward
+compatibility; it does not define zones.
+Although <code>backward</code> was originally designed to be optional,
+nowadays distributions typically use it
+and no great weight should be attached to whether a link
+is defined in <code>backward</code> or in some other file.
+The source file <code>etcetera</code> defines names that may be useful
+on platforms that do not support POSIX-style <code>TZ</code> strings;
+no other source file other than <code>backward</code>
+contains links to its zones.
+One of <code>etcetera</code>'s names is <code>GMT</code>,
+used by functions like <code>gmtime</code> to obtain leap
+second information on platforms that support leap seconds.
 </p>
 </section>
 
@@ -473,10 +490,10 @@ in decreasing order of importance:
 
     <p>
     <small>These abbreviations are:
-      AMT Amsterdam, Asunción, Athens;
+      AMT Asunción, Athens;
       BMT Baghdad, Bangkok, Batavia, Bermuda, Bern, Bogotá, Bridgetown,
         Brussels, Bucharest;
-      CMT Calamarca, Caracas, Chisinau, Colón, Copenhagen, Córdoba;
+      CMT Calamarca, Caracas, Chisinau, Colón, Córdoba;
       DMT Dublin/Dunsink;
       EMT Easter;
       FFMT Fort-de-France;
@@ -499,7 +516,8 @@ in decreasing order of importance:
       SMT Santiago, Simferopol, Singapore, Stanley;
       TBMT Tbilisi;
       TMT Tallinn, Tehran;
-      WMT Warsaw</small>.
+      WMT Warsaw;
+      ZMT Zomba.</small>
     </p>
 
     <p>
@@ -513,9 +531,7 @@ in decreasing order of importance:
        1880&ndash;1916,
       MMT/MST/MDST for Moscow 1880&ndash;1919, and
       RMT/LST for Riga Mean Time and Latvian Summer time 1880&ndash;1926.
-    An extra-special case is SET for Swedish Time (<em>svensk
-    normaltid</em>) 1879&ndash;1899, 3&deg; west of the Stockholm
-    Observatory.</small>
+    </small>
     </p>
   </li>
   <li>
@@ -702,11 +718,9 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes
   <li>
     Sometimes historical timekeeping was specified more precisely
     than what the <code><abbr>tz</abbr></code> code can handle.
-    For example, from 1909 to 1937 <a
-    href="https://www.staff.science.uu.nl/~gent0113/wettijd/wettijd.htm"
-    hreflang="nl">Netherlands clocks</a> were legally Amsterdam Mean
+    For example, from 1880 to 1916 clocks in Ireland observed Dublin Mean
     Time (estimated to be <abbr>UT</abbr>
-    +00:19:32.13), but the <code><abbr>tz</abbr></code>
+    &minus;00:25:21.1), but the <code><abbr>tz</abbr></code>
     code cannot represent the fractional second.
     In practice these old specifications were rarely if ever
     implemented to subsecond precision.
@@ -753,7 +767,8 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes
     the Western 06:00 to be 12:00. These practices are largely outside
     the scope of the <code><abbr>tz</abbr></code> code and data, which
     provide only limited support for date and time localization
-    such as that required by POSIX. If DST is not used a different time zone
+    such as that required by POSIX.
+    If <abbr>DST</abbr> is not used a different time zone
     can often do the trick; for example, in Kenya a <code>TZ</code> setting
     like <code>&lt;-03&gt;3</code> or <code>America/Cayenne</code> starts
     the day six hours later than <code>Africa/Nairobi</code> does.
@@ -1271,7 +1286,8 @@ The directly-supported mechanism assumes that <code>time_t</code>
 counts of seconds since the POSIX epoch normally include leap seconds,
 as opposed to POSIX <code>time_t</code> counts which exclude leap seconds.
 This modified timescale is converted to <abbr>UTC</abbr>
-at the same point that time zone and DST adjustments are applied &ndash;
+at the same point that time zone and <abbr>DST</abbr>
+adjustments are applied &ndash;
 namely, at calls to <code>localtime</code> and analogous functions &ndash;
 and the process is driven by leap second information
 stored in alternate versions of the <abbr>TZif</abbr> files.
index 1d590958afd816a284a72e02a880199884ae6445..ca002de23bcd31f23b3efabe67850212ab08824a 100644 (file)
@@ -1 +1 @@
-2021a
+2022a
index 7d6f7c99c9528647248af6417858d159a1566610..2be6d52b0143b9a3bd8ef2ec7ededb27fe785120 100644 (file)
@@ -104,25 +104,32 @@ DATAFORM != "main" {
   }
   if (!vanguard && $1 == "Rule" && $2 == "Morocco" && 2019 <= $3) {
     if ($9 == "0") {
+      last_std_date = $3 " " $6 " " $7 "  " $8
       sub(/\t0\t/, "\t1:00\t")
     } else {
       sub(/\t-1:00\t/, "\t0\t")
     }
   }
   if (!vanguard && $1 == "1:00" && $2 == "Morocco" && $3 == "+01/+00") {
-    sub(/1:00\tMorocco\t\+01\/\+00$/, "0:00\tMorocco\t+00/+01")
+    # This introduces a transition from 01:59:59 +00 to 03:00:00 +01
+    # with both times being standard (i.e., a change to standard UT offset).
+    # This is rearguard's way to approximate the actual prediction,
+    # which is that of an ordinary transition from DST to standard time.
+    sub(/1:00\tMorocco\t\+01\/\+00$/,
+       "0:00\tMorocco\t+00/+01\t" last_std_date "\n\t\t\t 1:00\t-\t+01")
   }
 }
 
-# If a Link line is followed by a Zone line for the same data, comment
+# If a Link line is followed by a Link or 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
-}
+# with a Zone or a different Link.
 /^Zone/ {
   sub(/^Link/, "#Link", line[linkline[$2]])
 }
+/^Link/ {
+  sub(/^Link/, "#Link", line[linkline[$3]])
+  linkline[$3] = NR
+}
 
 { line[NR] = $0 }
 
index 1f0128f3b280857704f2eddaa1187abf2471ac78..086458fb20739bda8be479089f05271c20472ed8 100644 (file)
@@ -3,7 +3,7 @@
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 #
-# From Paul Eggert (2018-06-27):
+# From Paul Eggert (2021-09-20):
 # This file is intended as a backward-compatibility aid for older programs.
 # New programs should use zone1970.tab.  This file is like zone1970.tab (see
 # zone1970.tab's comments), but with the following additional restrictions:
@@ -16,6 +16,9 @@
 # clocks have agreed since 1970; this is a narrower definition than
 # that of zone1970.tab.
 #
+# Unlike zone1970.tab, a row's third column can be a Link from
+# 'backward' instead of a Zone.
+#
 # This table is intended as an aid for users, to help them select timezones
 # appropriate for their practical needs.  It is not intended to take or
 # endorse any position on legal or territorial claims.
@@ -228,7 +231,7 @@ KE  -0117+03649     Africa/Nairobi
 KG     +4254+07436     Asia/Bishkek
 KH     +1133+10455     Asia/Phnom_Penh
 KI     +0125+17300     Pacific/Tarawa  Gilbert Islands
-KI     -0308-17105     Pacific/Enderbury       Phoenix Islands
+KI     -0247-17143     Pacific/Kanton  Phoenix Islands
 KI     +0152-15720     Pacific/Kiritimati      Line Islands
 KM     -1141+04316     Indian/Comoro
 KN     +1718-06243     America/St_Kitts
@@ -391,7 +394,7 @@ 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
+TO     -210800-1751200 Pacific/Tongatapu
 TR     +4101+02858     Europe/Istanbul
 TT     +1039-06131     America/Port_of_Spain
 TV     -0831+17913     Pacific/Funafuti
index 453a0fd063c994f3d9cdb8b5c1ca1c787c2c610a..8bf2412f744eb1d3bdff56cf680d3bcfe1545a70 100644 (file)
@@ -41,11 +41,9 @@ AL   +4120+01950     Europe/Tirane
 AM     +4011+04430     Asia/Yerevan
 AQ     -6617+11031     Antarctica/Casey        Casey
 AQ     -6835+07758     Antarctica/Davis        Davis
-AQ     -6640+14001     Antarctica/DumontDUrville       Dumont-d'Urville
 AQ     -6736+06253     Antarctica/Mawson       Mawson
 AQ     -6448-06406     Antarctica/Palmer       Palmer
 AQ     -6734-06808     Antarctica/Rothera      Rothera
-AQ     -690022+0393524 Antarctica/Syowa        Syowa
 AQ     -720041+0023206 Antarctica/Troll        Troll
 AQ     -7824+10654     Antarctica/Vostok       Vostok
 AR     -3436-05827     America/Argentina/Buenos_Aires  Buenos Aires (BA, CF)
@@ -98,7 +96,6 @@ BR    +0249-06040     America/Boa_Vista       Roraima
 BR     -0308-06001     America/Manaus  Amazonas (east)
 BR     -0640-06952     America/Eirunepe        Amazonas (west)
 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
@@ -107,13 +104,11 @@ CA        +4439-06336     America/Halifax Atlantic - NS (most areas); PE
 CA     +4612-05957     America/Glace_Bay       Atlantic - NS (Cape Breton)
 CA     +4606-06447     America/Moncton Atlantic - New Brunswick
 CA     +5320-06025     America/Goose_Bay       Atlantic - Labrador (most areas)
-CA     +5125-05707     America/Blanc-Sablon    AST - QC (Lower North Shore)
-CA     +4339-07923     America/Toronto Eastern - ON, QC (most areas)
+CA,BS  +4339-07923     America/Toronto Eastern - ON, QC (most areas), Bahamas
 CA     +4901-08816     America/Nipigon Eastern - ON, QC (no DST 1967-73)
 CA     +4823-08915     America/Thunder_Bay     Eastern - ON (Thunder Bay)
 CA     +6344-06828     America/Iqaluit Eastern - NU (most east areas)
 CA     +6608-06544     America/Pangnirtung     Eastern - NU (Pangnirtung)
-CA     +484531-0913718 America/Atikokan        EST - ON (Atikokan); NU (Coral H)
 CA     +4953-09709     America/Winnipeg        Central - ON (west); Manitoba
 CA     +4843-09434     America/Rainy_River     Central - ON (Rainy R, Ft Frances)
 CA     +744144-0944945 America/Resolute        Central - NU (Resolute)
@@ -124,7 +119,6 @@ CA  +5333-11328     America/Edmonton        Mountain - AB; BC (E); SK (W)
 CA     +690650-1050310 America/Cambridge_Bay   Mountain - NU (west)
 CA     +6227-11421     America/Yellowknife     Mountain - NT (central)
 CA     +682059-1334300 America/Inuvik  Mountain - NT (west)
-CA     +4906-11631     America/Creston MST - BC (Creston)
 CA     +5946-12014     America/Dawson_Creek    MST - BC (Dawson Cr, Ft St John)
 CA     +5848-12242     America/Fort_Nelson     MST - BC (Ft Nelson)
 CA     +6043-13503     America/Whitehorse      MST - Yukon (east)
@@ -132,7 +126,7 @@ CA  +6404-13925     America/Dawson  MST - Yukon (west)
 CA     +4916-12307     America/Vancouver       Pacific - BC (most areas)
 CC     -1210+09655     Indian/Cocos
 CH,DE,LI       +4723+00832     Europe/Zurich   Swiss time
-CI,BF,GM,GN,ML,MR,SH,SL,SN,TG  +0519-00402     Africa/Abidjan
+CI,BF,GH,GM,GN,ML,MR,SH,SL,SN,TG       +0519-00402     Africa/Abidjan
 CK     -2114-15946     Pacific/Rarotonga
 CL     -3327-07040     America/Santiago        Chile (most areas)
 CL     -5309-07055     America/Punta_Arenas    Region of Magallanes
@@ -143,7 +137,6 @@ 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    Cyprus (most areas)
 CY     +3507+03357     Asia/Famagusta  Northern Cyprus
@@ -171,7 +164,6 @@ 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/Nuuk    Greenland (most areas)
 GL     +7646-01840     America/Danmarkshavn    National Park (east coast)
@@ -205,7 +197,7 @@ 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     -0247-17143     Pacific/Kanton  Phoenix Islands
 KI     +0152-15720     Pacific/Kiritimati      Line Islands
 KP     +3901+12545     Asia/Pyongyang
 KR     +3733+12658     Asia/Seoul
@@ -263,19 +255,19 @@ 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
+PA,CA,KY       +0858-07932     America/Panama  EST - Panama, Cayman, ON (Atikokan), NU (Coral H)
 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    Papua New Guinea (most areas)
+PG,AQ  -0930+14710     Pacific/Port_Moresby    Papua New Guinea (most areas), Dumont d'Urville
 PG     -0613+15534     Pacific/Bougainville    Bougainville
 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
+PR,AG,CA,AI,AW,BL,BQ,CW,DM,GD,GP,KN,LC,MF,MS,SX,TT,VC,VG,VI    +182806-0660622 America/Puerto_Rico     AST
 PS     +3130+03428     Asia/Gaza       Gaza Strip
 PS     +313200+0350542 Asia/Hebron     West Bank
 PT     +3843-00908     Europe/Lisbon   Portugal (mainland)
@@ -315,12 +307,12 @@ RU        +4658+14242     Asia/Sakhalin   MSK+08 - Sakhalin Island
 RU     +6728+15343     Asia/Srednekolymsk      MSK+08 - Sakha (E); North Kuril Is
 RU     +5301+15839     Asia/Kamchatka  MSK+09 - Kamchatka
 RU     +6445+17729     Asia/Anadyr     MSK+09 - Bering Sea
-SA,KW,YE       +2438+04643     Asia/Riyadh
+SA,AQ,KW,YE    +2438+04643     Asia/Riyadh     Arabia, Syowa
 SB     -0932+16012     Pacific/Guadalcanal
 SC     -0440+05528     Indian/Mahe
 SD     +1536+03232     Africa/Khartoum
 SE     +5920+01803     Europe/Stockholm
-SG     +0117+10351     Asia/Singapore
+SG,MY  +0117+10351     Asia/Singapore  Singapore, peninsular Malaysia
 SR     +0550-05510     America/Paramaribo
 SS     +0451+03137     Africa/Juba
 ST     +0020+00644     Africa/Sao_Tome
@@ -335,9 +327,8 @@ 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
+TO     -210800-1751200 Pacific/Tongatapu
 TR     +4101+02858     Europe/Istanbul
-TT,AG,AI,BL,DM,GD,GP,KN,LC,MF,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     Ukraine (most areas)
@@ -363,7 +354,7 @@ US  +465042-1012439 America/North_Dakota/New_Salem  Central - ND (Morton rural)
 US     +471551-1014640 America/North_Dakota/Beulah     Central - ND (Mercer)
 US     +394421-1045903 America/Denver  Mountain (most areas)
 US     +433649-1161209 America/Boise   Mountain - ID (south); OR (east)
-US     +332654-1120424 America/Phoenix MST - Arizona (except Navajo)
+US,CA  +332654-1120424 America/Phoenix MST - Arizona (except Navajo), Creston BC
 US     +340308-1181434 America/Los_Angeles     Pacific
 US     +611305-1495401 America/Anchorage       Alaska (most areas)
 US     +581807-1342511 America/Juneau  Alaska - Juneau area