diff options
Diffstat (limited to 'website/static/security/patches/EN-22:20/tzdata-2022c.patch')
-rw-r--r-- | website/static/security/patches/EN-22:20/tzdata-2022c.patch | 4100 |
1 files changed, 4100 insertions, 0 deletions
diff --git a/website/static/security/patches/EN-22:20/tzdata-2022c.patch b/website/static/security/patches/EN-22:20/tzdata-2022c.patch new file mode 100644 index 0000000000..c140bddcd5 --- /dev/null +++ b/website/static/security/patches/EN-22:20/tzdata-2022c.patch @@ -0,0 +1,4100 @@ +--- ObsoleteFiles.inc.orig ++++ ObsoleteFiles.inc +@@ -8579,8 +8579,6 @@ + OLD_FILES+=usr/share/examples/etc/rc.firewall6 + # 20091117: removal of rc.early(8) link + OLD_FILES+=usr/share/man/man8/rc.early.8.gz +-# 20091117: usr/share/zoneinfo/GMT link removed +-OLD_FILES+=usr/share/zoneinfo/GMT + # 20091027: pselect.3 implemented as syscall + OLD_FILES+=usr/share/man/man3/pselect.3.gz + # 20091005: fusword.9 and susword.9 removed +--- contrib/tzdata/Makefile.orig ++++ contrib/tzdata/Makefile +@@ -33,7 +33,7 @@ + # make zonenames + # to get a list of the values you can use for LOCALTIME. + +-LOCALTIME= GMT ++LOCALTIME= Factory + + # The POSIXRULES macro controls interpretation of nonstandard and obsolete + # POSIX-like TZ settings like TZ='EET-2EEST' that lack DST transition rules. +@@ -176,12 +176,19 @@ + + BACKWARD= backward + +-# If you want out-of-scope and often-wrong data from the file 'backzone', use ++# If you want out-of-scope and often-wrong data from the file 'backzone', ++# but only for entries listed in the backward-compatibility file zone.tab, use + # PACKRATDATA= backzone ++# PACKRATLIST= zone.tab ++# If you want all the 'backzone' data, use ++# PACKRATDATA= backzone ++# PACKRATLIST= + # To omit this data, use + # PACKRATDATA= ++# PACKRATLIST= + + PACKRATDATA= ++PACKRATLIST= + + # The name of a locale using the UTF-8 encoding, used during self-tests. + # The tests are skipped if the name does not appear to work on this system. +@@ -264,7 +271,7 @@ + $(GCC_INSTRUMENT) \ + -Wall -Wextra \ + -Walloc-size-larger-than=100000 -Warray-bounds=2 \ +- -Wbad-function-cast -Wcast-align=strict -Wdate-time \ ++ -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \ + -Wdeclaration-after-statement -Wdouble-promotion \ + -Wduplicated-branches -Wduplicated-cond \ + -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ +@@ -278,7 +285,7 @@ + -Wsuggest-attribute=const -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ + -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ +- -Wtrampolines -Wundef -Wuninitialized -Wunused-macros \ ++ -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \ + -Wvariadic-macros -Wvla -Wwrite-strings \ + -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ + -Wno-type-limits -Wno-unused-parameter +@@ -291,8 +298,9 @@ + # guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. + # Similarly, if your system has a "zone abbreviation" field, define + # -DTM_ZONE=tm_zone +-# and define NO_TM_ZONE to suppress any guessing. These two fields are not +-# required by POSIX, but are widely available on GNU/Linux and BSD systems. ++# and define NO_TM_ZONE to suppress any guessing. Although these two fields ++# not required by POSIX, a future version of POSIX is planned to require them ++# and they are widely available on GNU/Linux and BSD systems. + # + # The next batch of options control support for external variables + # exported by tzcode. In practice these variables are less useful +@@ -448,6 +456,9 @@ + # useful in commentary. + UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) + ++# Put this in a bracket expression to match spaces. ++s = [:space:] ++ + # OK_CHAR matches any character allowed in the distributed files. + # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and + # multibyte letters are also allowed so that commentary can contain a +@@ -521,21 +532,23 @@ + ZONETABLES= zone1970.tab zone.tab + TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES) + LEAP_DEPS= leapseconds.awk leap-seconds.list +-TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA) +-DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) ++TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) \ ++ $(PACKRATDATA) $(PACKRATLIST) ++DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST) + DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ + leapseconds $(ZONETABLES) + AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ + ziguard.awk zishrink.awk +-MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl ++MISC= $(AWK_SCRIPTS) + TZS_YEAR= 2050 + TZS_CUTOFF_FLAG= -c $(TZS_YEAR) + TZS= to$(TZS_YEAR).tzs + TZS_NEW= to$(TZS_YEAR)new.tzs + TZS_DEPS= $(YDATA) asctime.c localtime.c \ + private.h tzfile.h zdump.c zic.c ++TZDATA_DIST = $(COMMON) $(DATA) $(MISC) + # EIGHT_YARDS is just a yard short of the whole ENCHILADA. +-EIGHT_YARDS = $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) tzdata.zi ++EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi + ENCHILADA = $(EIGHT_YARDS) $(TZS) + + # Consult these files when deciding whether to rebuild the 'version' file. +@@ -555,7 +568,7 @@ + tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ + workman.sh zdump.8 zdump.c zic.8 zic.c \ + ziguard.awk zishrink.awk \ +- zone.tab zone1970.tab zoneinfo2tdf.pl ++ zone.tab zone1970.tab + + # And for the benefit of csh users on systems that assume the user + # shell should be used to handle commands in Makefiles. . . +@@ -608,13 +621,17 @@ + printf '%s\n' "$$V" >$@.out + mv $@.out $@ + +-# These files can be tailored by setting BACKWARD and PACKRATDATA. ++# These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST. + vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) +- $(AWK) -v DATAFORM=`expr $@ : '\(.*\).zi'` -f ziguard.awk \ ++ $(AWK) \ ++ -v DATAFORM=`expr $@ : '\(.*\).zi'` \ ++ -v PACKRATDATA='$(PACKRATDATA)' \ ++ -v PACKRATLIST='$(PACKRATLIST)' \ ++ -f ziguard.awk \ + $(TDATA) $(PACKRATDATA) >$@.out + mv $@.out $@ + # This file has a version comment that attempts to capture any tailoring +-# via BACKWARD, DATAFORM, PACKRATDATA, and REDO. ++# via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO. + tzdata.zi: $(DATAFORM).zi version zishrink.awk + version=`sed 1q version` && \ + LC_ALL=C $(AWK) \ +@@ -652,6 +669,7 @@ + DESTDIR='$(DESTDIR)' \ + LEAPSECONDS='$(LEAPSECONDS)' \ + PACKRATDATA='$(PACKRATDATA)' \ ++ PACKRATLIST='$(PACKRATLIST)' \ + TZDEFAULT='$(TZDEFAULT)' \ + TZDIR='$(TZDIR)' \ + ZIC='$(ZIC)' +@@ -690,11 +708,6 @@ + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only + $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only + +-# This obsolescent rule is present for backwards compatibility with +-# tz releases 2014g through 2015g. It should go away eventually. +-posix_packrat: $(INSTALL_DATA_DEPS) +- $(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only +- + zones: $(REDO) + + # dummy.zd is not a real file; it is mentioned here only so that the +@@ -755,8 +768,8 @@ + mv $@.out $@ + + check: check_character_set check_white_space check_links \ +- check_name_lengths check_sorted \ +- check_tables check_web check_zishrink check_tzs ++ check_name_lengths check_slashed_abbrs check_sorted \ ++ check_tables check_web check_ziguard check_zishrink check_tzs + + check_character_set: $(ENCHILADA) + test ! '$(UTF8_LOCALE)' || \ +@@ -780,19 +793,28 @@ + patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ + ! grep -En "$$pat" \ + $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) +- ! grep -n '[[:space:]]$$' \ ++ ! grep -n '[$s]$$' \ + $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) + touch $@ + +-PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+ +-FILE_NAME_COMPONENT_TOO_LONG = \ +- $(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15} ++PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+ ++FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15} + + check_name_lengths: $(TDATA_TO_CHECK) backzone + ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ + $(TDATA_TO_CHECK) backzone + touch $@ + ++PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+ ++STDOFF = [-+]?[0-9:.]+ ++RULELESS_SAVE = (-|$(STDOFF)[sd]?) ++RULELESS_SLASHED_ABBRS = \ ++ $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ ++ ++check_slashed_abbrs: $(TDATA_TO_CHECK) ++ ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) ++ touch $@ ++ + CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } + + check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab +@@ -832,11 +854,19 @@ + test ! -s $@.out || { cat $@.out; exit 1; } + mv $@.out $@ + ++check_ziguard: rearguard.zi vanguard.zi ziguard.awk ++ $(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \ ++ diff -u rearguard.zi - ++ $(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \ ++ diff -u vanguard.zi - ++ touch $@ ++ + # Check that zishrink.awk does not alter the data, and that ziguard.awk + # preserves main-format data. + check_zishrink: check_zishrink_posix check_zishrink_right + check_zishrink_posix check_zishrink_right: \ +- zic leapseconds $(PACKRATDATA) $(TDATA) $(DATAFORM).zi tzdata.zi ++ zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \ ++ $(TDATA) $(DATAFORM).zi tzdata.zi + rm -fr $@.dir $@-t.dir $@-shrunk.dir + mkdir $@.dir $@-t.dir $@-shrunk.dir + case $@ in \ +@@ -845,8 +875,8 @@ + esac && \ + $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \ + $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \ +- case $(DATAFORM) in \ +- main) \ ++ case $(DATAFORM),$(PACKRATLIST) in \ ++ main,) \ + $(ZIC) $$leap -d $@-t.dir $(TDATA) && \ + $(AWK) '/^Rule/' $(TDATA) | \ + $(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \ +@@ -967,6 +997,10 @@ + rm public.dir/main.zi + cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi + public.dir/zic -d public.dir/zoneinfo main.zi ++ rm public.dir/main.zi ++ cd public.dir && \ ++ $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi ++ public.dir/zic -d public.dir/zoneinfo main.zi + : + rm -fr public.dir + touch $@ +@@ -1027,9 +1061,9 @@ + ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \ + tzdb-$(VERSION).tar.lz.asc + +-tarballs rearguard_tarballs traditional_tarballs \ ++tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \ + signatures rearguard_signatures traditional_signatures: \ +- version set-timestamps.out rearguard.zi ++ version set-timestamps.out rearguard.zi vanguard.zi + VERSION=`cat version` && \ + $(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version + +@@ -1042,6 +1076,8 @@ + tzdata$(VERSION)-rearguard.tar.gz + traditional_tarballs_version: \ + tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz ++tailored_tarballs_version: \ ++ tzdata$(VERSION)-tailored.tar.gz + signatures_version: $(ALL_ASC) + rearguard_signatures_version: $(REARGUARD_ASC) + traditional_signatures_version: $(TRADITIONAL_ASC) +@@ -1055,34 +1091,76 @@ + + tzdata$(VERSION).tar.gz: set-timestamps.out + LC_ALL=C && export LC_ALL && \ +- tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \ ++ tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \ + gzip $(GZIPFLAGS) >$@.out + mv $@.out $@ + ++# Create empty files with a reproducible timestamp. ++CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00 ++ ++# The obsolescent *rearguard* targets and related macros are present ++# for backwards compatibility with tz releases 2018e through 2022a. ++# They should go away eventually. To build rearguard tarballs you ++# can instead use 'make DATAFORM=rearguard tailored_tarballs'. + tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out +- rm -fr tzdata$(VERSION)-rearguard.dir +- mkdir tzdata$(VERSION)-rearguard.dir +- ln $(COMMON) $(DATA) $(MISC) tzdata$(VERSION)-rearguard.dir +- cd tzdata$(VERSION)-rearguard.dir && \ +- rm -f $(TDATA) $(PACKRATDATA) version ++ rm -fr $@.dir ++ mkdir $@.dir ++ ln $(TZDATA_DIST) $@.dir ++ cd $@.dir && rm -f $(TDATA) $(PACKRATDATA) version + for f in $(TDATA) $(PACKRATDATA); do \ +- rearf=tzdata$(VERSION)-rearguard.dir/$$f; \ ++ rearf=$@.dir/$$f; \ + $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ + $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \ + done +- sed '1s/$$/-rearguard/' \ +- <version >tzdata$(VERSION)-rearguard.dir/version ++ sed '1s/$$/-rearguard/' <version >$@.dir/version + : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. +- TZ=UTC0 touch -mt 202010122253.00 \ +- tzdata$(VERSION)-rearguard.dir/pacificnew +- touch -cmr version tzdata$(VERSION)-rearguard.dir/version ++ $(CREATE_EMPTY) $@.dir/pacificnew ++ touch -cmr version $@.dir/version + LC_ALL=C && export LC_ALL && \ +- (cd tzdata$(VERSION)-rearguard.dir && \ ++ (cd $@.dir && \ + tar $(TARFLAGS) -cf - \ +- $(COMMON) $(DATA) $(MISC) pacificnew | \ ++ $(TZDATA_DIST) pacificnew | \ + gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ + ++# Create a tailored tarball suitable for TZUpdater and compatible tools. ++# For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball ++# useful for testing whether TZUpdater supports vanguard form. ++# The generated tarball is not byte-for-byte equivalent to a hand-tailored ++# traditional tarball, as data entries are put into 'etcetera' even if they ++# came from some other source file. However, the effect should be the same ++# for ordinary use, which reads all the source files. ++tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out ++ rm -fr $@.dir ++ mkdir $@.dir ++ : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. ++ cd $@.dir && \ ++ $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \ ++ `test $(DATAFORM) = vanguard || echo pacificnew` ++ (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \ ++ >$@.dir/etcetera ++ touch -cmr tzdata.zi $@.dir/etcetera ++ sed -n \ ++ -e '/^# *version *\(.*\)/h' \ ++ -e '/^# *ddeps */H' \ ++ -e '$$!d' \ ++ -e 'g' \ ++ -e 's/^# *version *//' \ ++ -e 's/\n# *ddeps */-/' \ ++ -e 's/ /-/g' \ ++ -e 'p' \ ++ <tzdata.zi >$@.dir/version ++ touch -cmr version $@.dir/version ++ links= && \ ++ for file in $(TZDATA_DIST); do \ ++ test -f $@.dir/$$file || links="$$links $$file"; \ ++ done && \ ++ ln $$links $@.dir ++ LC_ALL=C && export LC_ALL && \ ++ (cd $@.dir && \ ++ tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out ++ mv $@.out $@ ++ + tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out + rm -fr tzdb-$(VERSION) + mkdir tzdb-$(VERSION) +@@ -1134,13 +1212,14 @@ + .PHONY: check_web check_zishrink + .PHONY: clean clean_misc dummy.zd force_tzs + .PHONY: install install_data maintainer-clean names +-.PHONY: posix_only posix_packrat posix_right public ++.PHONY: posix_only posix_right public + .PHONY: rearguard_signatures rearguard_signatures_version + .PHONY: rearguard_tarballs rearguard_tarballs_version + .PHONY: right_only right_posix signatures signatures_version + .PHONY: tarballs tarballs_version + .PHONY: traditional_signatures traditional_signatures_version + .PHONY: traditional_tarballs traditional_tarballs_version ++.PHONY: tailored_tarballs tailored_tarballs_version + .PHONY: typecheck + .PHONY: zonenames zones + .PHONY: $(ZDS) +--- contrib/tzdata/NEWS.orig ++++ contrib/tzdata/NEWS +@@ -1,5 +1,140 @@ + News for the tz database + ++Release 2022c - 2022-08-15 17:47:18 -0700 ++ ++ Briefly: ++ Work around awk bug in FreeBSD, macOS, etc. ++ Improve tzselect on intercontinental Zones. ++ ++ Changes to code ++ ++ Work around a bug in onetrueawk that broke commands like ++ 'make traditional_tarballs' on FreeBSD, macOS, etc. ++ (Problem reported by Deborah Goldsmith.) ++ ++ Add code to tzselect that uses experimental structured comments in ++ zone1970.tab to clarify whether Zones like Africa/Abidjan and ++ Europe/Istanbul cross continent or ocean boundaries. ++ (Inspired by a problem reported by Peter Krefting.) ++ ++ Fix bug with 'zic -d /a/b/c' when /a is unwritable but the ++ directory /a/b already exists. ++ ++ Remove zoneinfo2tdf.pl, as it was unused and triggered false ++ malware alarms on some email servers. ++ ++ ++Release 2022b - 2022-08-10 15:38:32 -0700 ++ ++ Briefly: ++ Chile's DST is delayed by a week in September 2022. ++ Iran no longer observes DST after 2022. ++ Rename Europe/Kiev to Europe/Kyiv. ++ New zic -R option ++ Vanguard form now uses %z. ++ Finish moving duplicate-since-1970 zones to 'backzone'. ++ New build option PACKRATLIST ++ New tailored_tarballs target, replacing rearguard_tarballs ++ ++ Changes to future timestamps ++ ++ Chile's 2022 DST start is delayed from September 4 to September 11. ++ (Thanks to Juan Correa.) ++ ++ Iran plans to stop observing DST permanently, after it falls back ++ on 2022-09-21. (Thanks to Ali Mirjamali.) ++ ++ Changes to past timestamps ++ ++ Finish moving to 'backzone' the location-based zones whose ++ timestamps since 1970 are duplicates; adjust links accordingly. ++ This change ordinarily affects only pre-1970 timestamps, and with ++ the new PACKRATLIST option it does not affect any timestamps. ++ In this round the affected zones are Antarctica/Vostok, ++ Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, ++ Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, ++ Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas, ++ Indian/Cocos, Indian/Kerguelen, Indian/Mahe, Indian/Reunion, ++ Pacific/Chuuk, Pacific/Funafuti, Pacific/Majuro, Pacific/Pohnpei, ++ Pacific/Wake and Pacific/Wallis, and the affected links are ++ Arctic/Longyearbyen, Atlantic/Jan_Mayen, Iceland, Pacific/Ponape, ++ Pacific/Truk, and Pacific/Yap. ++ ++ From fall 1994 through fall 1995, Shanks wrote that Crimea's ++ DST transitions were at 02:00 standard time, not at 00:00. ++ (Thanks to Michael Deckers.) ++ ++ Iran adopted standard time in 1935, not 1946. In 1977 it observed ++ DST from 03-21 23:00 to 10-20 24:00; its 1978 transitions were on ++ 03-24 and 08-05, not 03-20 and 10-20; and its spring 1979 ++ transition was on 05-27, not 03-21. ++ (Thanks to Roozbeh Pournader and Francis Santoni.) ++ ++ Chile's observance of -04 from 1946-08-29 through 1947-03-31 was ++ considered DST, not standard time. Santiago and environs had moved ++ their clocks back to rejoin the rest of mainland Chile; put this ++ change at the end of 1946-08-28. (Thanks to Michael Deckers.) ++ ++ Some old, small clock transitions have been removed, as people at ++ the time did not change their clocks. This affects Asia/Hong_Kong ++ in 1904, Asia/Ho_Chi_Minh in 1906, and Europe/Dublin in 1880. ++ ++ Changes to zone name ++ ++ Rename Europe/Kiev to Europe/Kyiv, as "Kyiv" is more common in ++ English now. Spelling of other names in Ukraine has not yet ++ demonstrably changed in common English practice so for now these ++ names retain old spellings, as in other countries (e.g., ++ Europe/Prague not "Praha", and Europe/Sofia not "Sofiya"). ++ ++ Changes to code ++ ++ zic has a new option '-R @N' to output explicit transitions < N. ++ (Need suggested by Almaz Mingaleev.) ++ ++ 'zic -r @N' no longer outputs bad data when N < first transition. ++ (Problem introduced in 2021d and reported by Peter Krefting.) ++ ++ zic now checks its input for NUL bytes and unterminated lines, and ++ now supports input line lengths up to 2048 (not 512) bytes. ++ ++ gmtime and related code now use the abbreviation "UTC" not "GMT". ++ POSIX is being revised to require this. ++ ++ When tzset and related functions set vestigial static variables ++ like tzname, they now prefer specified timestamps to unspecified ones. ++ (Problem reported by Almaz Mingaleev.) ++ ++ zic no longer complains "can't determine time zone abbreviation to ++ use just after until time" when a transition to a new standard ++ time occurs simultaneously with the first DST fallback transition. ++ ++ Changes to build procedure ++ ++ Source data in vanguard form now uses the %z notation, introduced ++ in release 2015f. For example, for America/Sao_Paulo vanguard ++ form contains the zone continuation line "-3:00 Brazil %z", which ++ is simpler and more reliable than the line "-3:00 Brazil -03/-02" ++ used in main and rearguard forms. The plan is for the main form ++ to use %z eventually; in the meantime maintainers of zi parsers ++ are encouraged to test the parsers on vanguard.zi. ++ ++ The Makefile has a new PACKRATLIST option to select a subset of ++ 'backzone'. For example, 'make PACKRATDATA=backzone ++ PACKRATLIST=zone.tab' now generates TZif files identical to those ++ of the global-tz project. ++ ++ The Makefile has a new tailored_tarballs target for generating ++ special-purpose tarballs. It generalizes and replaces the ++ rearguard_tarballs target and related targets and macros, which ++ are now obsolescent. ++ ++ 'make install' now defaults LOCALTIME to Factory not GMT, ++ which means the default abbreviation is now "-00" not "GMT". ++ ++ Remove the posix_packrat target, marked obsolescent in 2016a. ++ ++ + Release 2022a - 2022-03-15 23:02:01 -0700 + + Briefly: +@@ -161,7 +296,7 @@ + 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. ++ that timezone. The old name is now a backward-compatibility link. + + Changes to past timestamps + +@@ -1315,7 +1450,7 @@ + Changes to build procedure + + The distribution now contains the file 'pacificnew' again. +- This file was inadvertantly omitted in the 2018a distribution. ++ This file was inadvertently omitted in the 2018a distribution. + (Problem reported by Matias Fonzo.) + + +@@ -4387,7 +4522,7 @@ + + changes by Paul Eggert + +- Derick Rethan's Asmara change ++ Derick Rethans's Asmara change + + Oscar van Vlijmen's Easter Island local mean time change + +--- contrib/tzdata/africa.orig ++++ contrib/tzdata/africa +@@ -159,6 +159,7 @@ + Link Africa/Abidjan Africa/Lome # Togo + Link Africa/Abidjan Africa/Nouakchott # Mauritania + Link Africa/Abidjan Africa/Ouagadougou # Burkina Faso ++Link Africa/Abidjan Atlantic/Reykjavik # Iceland + Link Africa/Abidjan Atlantic/St_Helena # St Helena + + # Djibouti +@@ -169,7 +170,7 @@ + # Egypt + + # Milne says Cairo used 2:05:08.9, the local mean time of the Abbasizeh +-# observatory; round to nearest. Milne also says that the official time for ++# observatory. Milne also says that the official time for + # Egypt was mean noon at the Great Pyramid, 2:04:30.5, but apparently this + # did not apply to Cairo, Alexandria, or Port Said. + +@@ -354,6 +355,7 @@ + Rule Egypt 2014 only - Sep lastThu 24:00 0 - + + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF 2:05:08.9 + Zone Africa/Cairo 2:05:09 - LMT 1900 Oct + 2:00 Egypt EE%sT + +@@ -407,7 +409,7 @@ + # At midnight on 30 June 1928 the clocks throughout Kenya was put forward + # half an hour by the Alteration of Time Ordinance, 1928. + # https://gazettes.africa/archive/ke/1928/ke-government-gazette-dated-1928-05-11-no-28.pdf +-# [Ordinance No. 11 of 1928, The Offical Gazette, 1928-06-26, p 813] ++# [Ordinance No. 11 of 1928, The Official Gazette, 1928-06-26, p 813] + # https://books.google.com/books?id=2S0S6os32ZUC&pg=PA813 + # + # The 1928 ordinance was repealed by the Alteration of Time (repeal) Ordinance, +@@ -1310,21 +1312,9 @@ + 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 +-# +-# 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, +-# in French; no longer available as of 1999-08-17). +-# We have no info about their time zone histories. ++# See Asia/Dubai. + # +-# Bassas da India - uninhabited +-# Europa Island - inhabited from 1905 to 1910 by two families +-# Glorioso Is - inhabited until at least 1958 +-# Juan de Nova - uninhabited +-# Tromelin - inhabited until at least 1958 ++# The Crozet Islands also observe Réunion time; see the 'antarctica' file. + + # Rwanda + # See Africa/Maputo. +@@ -1356,9 +1346,10 @@ + # From Michael Deckers (2018-12-30): + # https://www.legis-palop.org/download.jsp?idFile=102818 + # ... [The legal time of the country, which coincides with universal +-# coordinated time, will be restituted at 2 o'clock on day 1 of January, 2019.] ++# coordinated time, will be reinstituted at 2 o'clock on day 1 of January, 2019.] + + Zone Africa/Sao_Tome 0:26:56 - LMT 1884 ++ #STDOFF -0:36:44.68 + -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT + 0:00 - GMT 2018 Jan 1 01:00 + 1:00 - WAT 2019 Jan 1 02:00 +@@ -1368,28 +1359,7 @@ + # See Africa/Abidjan. + + # Seychelles +- +-# From P Chan (2020-11-27): +-# Standard Time was adopted on 1907-01-01. +-# +-# Standard Time Ordinance (Chapter 237) +-# The Laws of Seychelles in Force on the 31st December, 1971, Vol. 6, p 571 +-# https://books.google.com/books?id=efE-AQAAIAAJ&pg=PA571 +-# +-# From Tim Parenti (2020-12-05): +-# A footnote on https://books.google.com/books?id=DYdDAQAAMAAJ&pg=PA1689 +-# confirms that Ordinance No. 9 of 1906 "was brought into force on the 1st +-# January, 1907." +- +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Indian/Mahe 3:41:48 - LMT 1907 Jan 1 # Victoria +- 4:00 - +04 +-# From Paul Eggert (2001-05-30): +-# Aldabra, Farquhar, and Desroches, originally dependencies of the +-# Seychelles, were transferred to the British Indian Ocean Territory +-# in 1965 and returned to Seychelles control in 1976. We don't know +-# whether this affected their time zone, so omit this for now. +-# Possibly the islands were uninhabited. ++# See Asia/Dubai. + + # Sierra Leone + # See Africa/Abidjan. +--- contrib/tzdata/antarctica.orig ++++ contrib/tzdata/antarctica +@@ -157,9 +157,7 @@ + # St Paul Island - near Amsterdam, uninhabited + # fishing stations operated variously 1819/1931 + # +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français +- 5:00 - +05 ++# Kerguelen - see Indian/Maldives. + # + # year-round base in the main continent + # Dumont d'Urville - see Pacific/Port_Moresby. +@@ -242,31 +240,7 @@ + # year-round from 1960/61 to 1992 + + # Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11 +-# From Craig Mundell (1994-12-15): +-# http://quest.arc.nasa.gov/antarctica/QA/computers/Directions,Time,ZIP +-# Vostok, which is one of the Russian stations, is set on the same +-# time as Moscow, Russia. +-# +-# From Lee Hotz (2001-03-08): +-# I queried the folks at Columbia who spent the summer at Vostok and this is +-# what they had to say about time there: +-# "in the US Camp (East Camp) we have been on New Zealand (McMurdo) +-# time, which is 12 hours ahead of GMT. The Russian Station Vostok was +-# 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead +-# of GMT). This is a time zone I think two hours east of Moscow. The +-# natural time zone is in between the two: 8 hours ahead of GMT." +-# +-# From Paul Eggert (2001-05-04): +-# This seems to be hopelessly confusing, so I asked Lee Hotz about it +-# in person. He said that some Antarctic locations set their local +-# time so that noon is the warmest part of the day, and that this +-# changes during the year and does not necessarily correspond to mean +-# solar noon. So the Vostok time might have been whatever the clocks +-# happened to be during their visit. So we still don't really know what time +-# it is at Vostok. But we'll guess +06. +-# +-Zone Antarctica/Vostok 0 - -00 1957 Dec 16 +- 6:00 - +06 ++# See Asia/Urumqi. + + # S Africa - year-round bases + # Marion Island, -4653+03752 +--- contrib/tzdata/asia.orig ++++ contrib/tzdata/asia +@@ -255,10 +255,7 @@ + 6:00 - +06 + + # Brunei +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan +- 7:30 - +0730 1933 +- 8:00 - +08 ++# See Asia/Kuching. + + # Burma / Myanmar + +@@ -276,6 +273,7 @@ + 6:30 - +0630 1942 May + 9:00 - +09 1945 May 3 + 6:30 - +0630 ++Link Asia/Yangon Indian/Cocos + + # Cambodia + # See Asia/Bangkok. +@@ -344,12 +342,9 @@ + # in the city at the time for people who use different time standard to adjust + # their clock to their preferred time. + # +-# a. For the 1940 May 31 spring forward, the essay claim that it was +-# coordinared between the international settlement authority and the French +-# concession authority and have gathered support from Hong Kong and Xiamen, +-# that it would spring forward an hour from May 31 "midnight", and the essay +-# claim "Hong Kong government implemented the spring forward in the same time +-# on the same date as Shanghai". ++# a. For the 1940 May 31 spring forward, the essay [says] ... "Hong ++# Kong government implemented the spring forward in the same time on ++# the same date as Shanghai". + # + # b. For the 1940 fall back, it was said that they initially intended to do + # so on September 30 00:59 at night, however they postponed it to October 12 +@@ -545,7 +540,7 @@ + # Zhongyuan Time ("Central plain Time") UT +08 + # Now part of Asia/Shanghai. + # most of China +-# Milne gives 8:05:43.2 for Xujiahui Observatory time; round to nearest. ++# Milne gives 8:05:43.2 for Xujiahui Observatory time.... + # Guo says Shanghai switched to UT +08 "from the end of the 19th century". + # + # Long-shu Time (probably as Long and Shu were two names of the area) UT +07 +@@ -664,6 +659,7 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + # Beijing time, used throughout China; represented by Shanghai. ++ #STDOFF 8:05:43.2 + Zone Asia/Shanghai 8:05:43 - LMT 1901 + 8:00 Shang C%sT 1949 May 28 + 8:00 PRC C%sT +@@ -671,11 +667,12 @@ + # / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.) + Zone Asia/Urumqi 5:50:20 - LMT 1928 + 6:00 - +06 ++Link Asia/Urumqi Antarctica/Vostok + + + # Hong Kong + +-# Milne gives 7:36:41.7; round this. ++# Milne gives 7:36:41.7. + + # From Lee Yiu Chung (2009-10-24): + # I found there are some mistakes for the...DST rule for Hong +@@ -859,7 +856,8 @@ + Rule HK 1979 only - May 13 3:30 1:00 S + Rule HK 1979 only - Oct 21 3:30 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42 ++ #STDOFF 7:36:41.7 ++Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 29 17:00u + 8:00 - HKT 1941 Jun 15 3:00 + 8:00 1:00 HKST 1941 Oct 1 4:00 + 8:00 0:30 HKWT 1941 Dec 25 +@@ -1334,7 +1332,7 @@ + # + # From Paul Eggert (2014-09-06): + # The 1876 Report of the Secretary of the [US] Navy, p 306 says that Batavia +-# civil time was 7:07:12.5; round to even for Jakarta. ++# civil time was 7:07:12.5. + # + # From Gwillim Law (2001-05-28), overriding Shanks & Pottenger: + # http://www.sumatera-inc.com/go_to_invest/about_indonesia.asp#standtime +@@ -1370,10 +1368,11 @@ + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] + # Java, Sumatra ++ #STDOFF 7:07:12.5 + Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 + # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, + # but this must be a typo. +- 7:07:12 - BMT 1923 Dec 31 23:47:12 # Batavia ++ 7:07:12 - BMT 1923 Dec 31 16:40u # Batavia + 7:20 - +0720 1932 Nov + 7:30 - +0730 1942 Mar 23 + 9:00 - +09 1945 Sep 23 +@@ -1405,6 +1404,111 @@ + + # Iran + ++# From Roozbeh Pournader (2022-05-30): ++# Here's an order from the Cabinet to the rest of the government to switch to ++# Tehran time, which is mentioned to be already at +03:30: ++# https://qavanin.ir/Law/TreeText/180138 ++# Just in case that goes away, I also saved a copy at archive.org: ++# https://web.archive.org/web/20220530111940/https://qavanin.ir/Law/TreeText/180138 ++# Here's my translation: ++# ++# "Circular on Matching the Hours of Governmental and Official Circles ++# in Provinces ++# Approved 1314/03/22 [=1935-06-13] ++# According to the ruling of the Honorable Cabinet, it is ordered that from ++# now on in all internal provinces of the country, governmental and official ++# circles set their time to match Tehran time (three hours and half before ++# Greenwich).... ++# ++# I still haven't found out when Tehran itself switched to +03:30.... ++# ++# From Paul Eggert (2022-06-05): ++# Although the above says Tehran was at +03:30 before 1935-06-13, we don't ++# know when it switched to +03:30. For now, use 1935-06-13 as the switch date. ++# Although most likely wrong, we have no better info. ++ ++# From Roozbeh Pournader (2022-06-01): ++# This is from Kayhan newspaper, one of the major Iranian newspapers, from ++# March 20, 1978, page 2: ++# ++# "Pull the clocks 60 minutes forward ++# As we informed before, from the fourth day of the month Farvardin of the ++# new year [=1978-03-24], clocks will be pulled forward, and people's daily ++# work and life program will start one hour earlier than the current program. ++# On the 1st day of the month Farvardin of this year [=1977-03-21], they had ++# pulled the clocks forward by one hour, but in the month of Mehr ++# [=1977-09-23], the clocks were pulled back by 30 minutes. ++# In this way, from the 4th day of the month Farvardin, clocks will be ahead ++# of the previous years by one hour and a half. ++# According to the new program, during the night of 4th of Farvardin, when ++# the midnight, meaning 24 o'clock is announced, the hands of the clock must ++# be pulled forward by one hour and thus consider midnight 1 o'clock in the ++# forenoon." ++# ++# This implies that in September 1977, when the daylight savings time was ++# done with, Iran didn't go back to +03:30, but immediately to +04:00. ++# ++# ++# This is from the major Iranian newspaper Ettela'at, dated [1978-08-03]..., ++# page 32. It looks like they decided to get the clocks back to +4:00 ++# just in time for Ramadan that year: ++# ++# "Tomorrow Night, Pull the Clocks Back by One Hour ++# At 1 o'clock in the forenoon of Saturday 14 Mordad [=1978-08-05], the ++# clocks will be pulled one hour back and instead of 1 o'clock in the ++# forenoon, Radio Iran will announce 24 o'clock. ++# This decision was made in the Cabinet of Ministers meeting of 25 Tir ++# [=1978-07-16], [...] ++# At the beginning of the year 2537 [=March 1978: Iran was using a different ++# year number for a few years then, based on the Coronation of Cyrus the ++# Great], the country's official time was pulled forward by one hour and now ++# the official time is one hour and a half ahead compared to last year, ++# because in Farvardin of last year [=March 1977], the official time was ++# pulled forward one hour and this continued until the second half of last ++# year [=September 1977] until in the second half of last year the official ++# time was pulled back half an hour and that half hour still remains." ++# ++# This matches the time of the true noon published in the newspapers, as they ++# clearly go from +05:00 to +04:00 after that date (which happened during a ++# long weekend in Iran). ++ ++# From Roozbeh Pournader (2022-05-31): ++# [Movahedi S. Cultural preconceptions of time: Can we use operational time ++# to meddle in God's Time? Comp Stud Soc Hist. 1985;27(3):385-400] ++# https://www.jstor.org/stable/178704 ++# Here's the quotes from the paper: ++# 1. '"Iran's official time keeper moved the clock one hour forward as from ++# March 22, 1977 (Farvardin 2, 2536) to make maximum use of daylight and save ++# in energy consumption. Thus Iran joined such other countries as Britain in ++# observing what is known as 'daylight saving.' The proposal was originally ++# put forward by the Ministry of Energy, in no way having any influence on ++# observing religious ceremonies. Moving time one hour forward in summer ++# means that at 11:00 o'clock on March 21, the official time was set as ++# midnight March 22. Then September 24 will actually begin one hour later ++# than the end of September 23 [...]." Iran's time base thus continued to be ++# Greenwich Mean Time plus three and one-half hours (plus four and one-half ++# hours in summer).' ++# ++# The article sources this from Iran Almanac and Book of Facts, 1977, Tehran: ++# Echo of Iran, which is on Google Books at ++# https://www.google.com/books/edition/Iran_Almanac_and_Book_of_Facts/9ybVAAAAMAAJ. ++# (I confirmed it by searching for snippets.) ++# ++# 2. "After the fall of the shah, the revolutionary government returned to ++# daylight-saving time (DST) on 26 May 1979." ++# ++# This seems to have been announced just one day in advance, on 25 May 1979. ++# ++# The change in 1977 clearly seems to be the first daylight savings effort in ++# Iran. But the article doesn't mention what happened in 1978 (which was ++# still during the shah's government), or how things continued in 1979 ++# onwards (which was during the Islamic Republic). ++ ++# From Francis Santoni (2022-06-01): ++# for Iran and 1977 the effective change is only 20 October ++# (UIT No. 143 17.XI.1977) and not 23 September (UIT No. 141 13.IX.1977). ++# UIT is the Operational Bulletin of International Telecommunication Union. ++ + # From Roozbeh Pournader (2003-03-15): + # This is an English translation of what I just found (originally in Persian). + # The Gregorian dates in brackets are mine: +@@ -1439,65 +1543,12 @@ + # leap year calculation involved. There has never been any serious + # plan to change that law.... + # +-# From Paul Eggert (2018-11-30): +-# Go with Shanks & Pottenger before Sept. 1991, and with Pournader thereafter. +-# I used the following code in GNU Emacs 26.1 to generate the "Rule Iran" +-# lines from 2008 through 2087. Emacs 26.1 uses Ed Reingold's +-# cal-persia implementation of Birashk's approximation, which in the +-# 2008-2087 range disagrees with the astronomical Persian calendar +-# for Persian years 1404 (Gregorian 2025) and 1437 (Gregorian 2058), so +-# the following code special-cases those years. See Table 15.1, page 264, of: +-# Edward M. Reingold and Nachum Dershowitz, Calendrical Calculations: +-# The Ultimate Edition, Cambridge University Press (2018). +-# https://www.cambridge.org/fr/academic/subjects/computer-science/computing-general-interest/calendrical-calculations-ultimate-edition-4th-edition +-# Page 258, footnote 2, of this book says there is some dispute over what will +-# happen in 2091 (and some other years after that), so this code +-# stops in 2087, as 2088 and 2089 agree with the "max" rule below. +-# (cl-loop +-# initially (require 'cal-persia) +-# with first-persian-year = 1387 +-# with last-persian-year = 1466 +-# ;; Exceptional years in the above range, +-# ;; from Reingold & Dershowitz Table 15.1, page 264: +-# with exceptional-persian-years = '(1404 1437) +-# with range-start = nil +-# for persian-year from first-persian-year to last-persian-year +-# do +-# (let* +-# ((exceptional-year-offset +-# (if (member persian-year exceptional-persian-years) 1 0)) +-# (beg-dst-absolute +-# (+ (calendar-persian-to-absolute (list 1 1 persian-year)) +-# exceptional-year-offset)) +-# (end-dst-absolute +-# (+ (calendar-persian-to-absolute (list 6 30 persian-year)) +-# exceptional-year-offset)) +-# (next-year-beg-dst-absolute +-# (+ (calendar-persian-to-absolute (list 1 1 (1+ persian-year))) +-# (if (member (1+ persian-year) exceptional-persian-years) 1 0))) +-# (beg-dst (calendar-gregorian-from-absolute beg-dst-absolute)) +-# (end-dst (calendar-gregorian-from-absolute end-dst-absolute)) +-# (next-year-beg-dst (calendar-gregorian-from-absolute +-# next-year-beg-dst-absolute)) +-# (year (calendar-extract-year beg-dst)) +-# (range-end (if range-start year "only"))) +-# (setq range-start (or range-start year)) +-# (when (or (/= (calendar-extract-day beg-dst) +-# (calendar-extract-day next-year-beg-dst)) +-# (= persian-year last-persian-year)) +-# (insert +-# (format +-# "Rule\tIran\t%d\t%s\t-\t%s\t%2d\t24:00\t1:00\t-\n" +-# range-start range-end +-# (calendar-month-name (calendar-extract-month beg-dst) t) +-# (calendar-extract-day beg-dst))) +-# (insert +-# (format +-# "Rule\tIran\t%d\t%s\t-\t%s\t%2d\t24:00\t0\t-\n" +-# range-start range-end +-# (calendar-month-name (calendar-extract-month end-dst) t) +-# (calendar-extract-day end-dst))) +-# (setq range-start nil)))) ++# From Paul Eggert (2022-06-30): ++# Go with Pournader for 1935 through spring 1979, and for timestamps ++# after August 1991; go with with Shanks & Pottenger for other timestamps. ++# Go with Santoni's citation of the UIT for fall 1977, as 20 October 1977 ++# is 28 Mehr 1356, consistent with the "Mehr" in Pournader's source. ++# Assume that the UIT's "1930" is UTC, i.e., 24:00 local time. + # + # From Oscar van Vlijmen (2005-03-30), writing about future + # discrepancies between cal-persia and the Iranian calendar: +@@ -1531,10 +1582,23 @@ + # be changed back to its previous state on the 24 hours of the + # thirtieth day of Shahrivar. + # ++# From Ali Mirjamali (2022-05-10): ++# Official IR News Agency announcement: irna.ir/xjJ3TT ++# ... ++# Highlights: DST will be cancelled for the next Iranian year 1402 ++# (i.e 2023-March-21) and forthcoming years. ++# + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Iran 1978 1980 - Mar 20 24:00 1:00 - +-Rule Iran 1978 only - Oct 20 24:00 0 - ++# Work around a bug in zic 2022a and earlier. ++Rule Iran 1910 only - Jan 1 00:00 0 - ++# ++Rule Iran 1977 only - Mar 21 23:00 1:00 - ++Rule Iran 1977 only - Oct 20 24:00 0 - ++Rule Iran 1978 only - Mar 24 24:00 1:00 - ++Rule Iran 1978 only - Aug 5 01:00 0 - ++Rule Iran 1979 only - May 26 24:00 1:00 - + Rule Iran 1979 only - Sep 18 24:00 0 - ++Rule Iran 1980 only - Mar 20 24:00 1:00 - + Rule Iran 1980 only - Sep 22 24:00 0 - + Rule Iran 1991 only - May 2 24:00 1:00 - + Rule Iran 1992 1995 - Mar 21 24:00 1:00 - +@@ -1565,85 +1629,13 @@ + Rule Iran 2017 2019 - Sep 21 24:00 0 - + Rule Iran 2020 only - Mar 20 24:00 1:00 - + Rule Iran 2020 only - Sep 20 24:00 0 - +-Rule Iran 2021 2023 - Mar 21 24:00 1:00 - +-Rule Iran 2021 2023 - Sep 21 24:00 0 - +-Rule Iran 2024 only - Mar 20 24:00 1:00 - +-Rule Iran 2024 only - Sep 20 24:00 0 - +-Rule Iran 2025 2027 - Mar 21 24:00 1:00 - +-Rule Iran 2025 2027 - Sep 21 24:00 0 - +-Rule Iran 2028 2029 - Mar 20 24:00 1:00 - +-Rule Iran 2028 2029 - Sep 20 24:00 0 - +-Rule Iran 2030 2031 - Mar 21 24:00 1:00 - +-Rule Iran 2030 2031 - Sep 21 24:00 0 - +-Rule Iran 2032 2033 - Mar 20 24:00 1:00 - +-Rule Iran 2032 2033 - Sep 20 24:00 0 - +-Rule Iran 2034 2035 - Mar 21 24:00 1:00 - +-Rule Iran 2034 2035 - Sep 21 24:00 0 - +-Rule Iran 2036 2037 - Mar 20 24:00 1:00 - +-Rule Iran 2036 2037 - Sep 20 24:00 0 - +-Rule Iran 2038 2039 - Mar 21 24:00 1:00 - +-Rule Iran 2038 2039 - Sep 21 24:00 0 - +-Rule Iran 2040 2041 - Mar 20 24:00 1:00 - +-Rule Iran 2040 2041 - Sep 20 24:00 0 - +-Rule Iran 2042 2043 - Mar 21 24:00 1:00 - +-Rule Iran 2042 2043 - Sep 21 24:00 0 - +-Rule Iran 2044 2045 - Mar 20 24:00 1:00 - +-Rule Iran 2044 2045 - Sep 20 24:00 0 - +-Rule Iran 2046 2047 - Mar 21 24:00 1:00 - +-Rule Iran 2046 2047 - Sep 21 24:00 0 - +-Rule Iran 2048 2049 - Mar 20 24:00 1:00 - +-Rule Iran 2048 2049 - Sep 20 24:00 0 - +-Rule Iran 2050 2051 - Mar 21 24:00 1:00 - +-Rule Iran 2050 2051 - Sep 21 24:00 0 - +-Rule Iran 2052 2053 - Mar 20 24:00 1:00 - +-Rule Iran 2052 2053 - Sep 20 24:00 0 - +-Rule Iran 2054 2055 - Mar 21 24:00 1:00 - +-Rule Iran 2054 2055 - Sep 21 24:00 0 - +-Rule Iran 2056 2057 - Mar 20 24:00 1:00 - +-Rule Iran 2056 2057 - Sep 20 24:00 0 - +-Rule Iran 2058 2059 - Mar 21 24:00 1:00 - +-Rule Iran 2058 2059 - Sep 21 24:00 0 - +-Rule Iran 2060 2062 - Mar 20 24:00 1:00 - +-Rule Iran 2060 2062 - Sep 20 24:00 0 - +-Rule Iran 2063 only - Mar 21 24:00 1:00 - +-Rule Iran 2063 only - Sep 21 24:00 0 - +-Rule Iran 2064 2066 - Mar 20 24:00 1:00 - +-Rule Iran 2064 2066 - Sep 20 24:00 0 - +-Rule Iran 2067 only - Mar 21 24:00 1:00 - +-Rule Iran 2067 only - Sep 21 24:00 0 - +-Rule Iran 2068 2070 - Mar 20 24:00 1:00 - +-Rule Iran 2068 2070 - Sep 20 24:00 0 - +-Rule Iran 2071 only - Mar 21 24:00 1:00 - +-Rule Iran 2071 only - Sep 21 24:00 0 - +-Rule Iran 2072 2074 - Mar 20 24:00 1:00 - +-Rule Iran 2072 2074 - Sep 20 24:00 0 - +-Rule Iran 2075 only - Mar 21 24:00 1:00 - +-Rule Iran 2075 only - Sep 21 24:00 0 - +-Rule Iran 2076 2078 - Mar 20 24:00 1:00 - +-Rule Iran 2076 2078 - Sep 20 24:00 0 - +-Rule Iran 2079 only - Mar 21 24:00 1:00 - +-Rule Iran 2079 only - Sep 21 24:00 0 - +-Rule Iran 2080 2082 - Mar 20 24:00 1:00 - +-Rule Iran 2080 2082 - Sep 20 24:00 0 - +-Rule Iran 2083 only - Mar 21 24:00 1:00 - +-Rule Iran 2083 only - Sep 21 24:00 0 - +-Rule Iran 2084 2086 - Mar 20 24:00 1:00 - +-Rule Iran 2084 2086 - Sep 20 24:00 0 - +-Rule Iran 2087 only - Mar 21 24:00 1:00 - +-Rule Iran 2087 only - Sep 21 24:00 0 - +-# +-# The following rules are approximations starting in the year 2088. +-# These are the best post-2088 approximations available, given the +-# restrictions of a single rule using ordinary Gregorian dates. +-# At some point this table will need to be extended, though quite +-# possibly Iran will change the rules first. +-Rule Iran 2088 max - Mar 20 24:00 1:00 - +-Rule Iran 2088 max - Sep 20 24:00 0 - ++Rule Iran 2021 2022 - Mar 21 24:00 1:00 - ++Rule Iran 2021 2022 - Sep 21 24:00 0 - + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Asia/Tehran 3:25:44 - LMT 1916 +- 3:25:44 - TMT 1946 # Tehran Mean Time +- 3:30 - +0330 1977 Nov ++ 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time ++ 3:30 Iran +0330/+0430 1977 Oct 20 24:00 + 4:00 Iran +04/+05 1979 + 3:30 Iran +0330/+0430 + +@@ -2465,9 +2457,9 @@ + # the third time belt (before 1930 this means +03). + + # From Alexander Konzurovski (2018-12-20): +-# Qyzyolrda Region (Asia/Qyzylorda) is changing its time zone from +-# UTC+6 to UTC+5 effective December 21st, 2018. The legal document is +-# located here: http://adilet.zan.kz/rus/docs/P1800000817 (russian language). ++# (Asia/Qyzylorda) is changing its time zone from UTC+6 to UTC+5 ++# effective December 21st, 2018.... ++# http://adilet.zan.kz/rus/docs/P1800000817 (russian language). + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + # +@@ -2744,20 +2736,8 @@ + Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - + Rule NBorneo 1935 1941 - Dec 14 0:00 0 - + # +-# peninsular Malaysia +-# taken from Mok Ly Yng (2003-10-30) +-# 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. +- 7:00 - +07 1933 Jan 1 +- 7:00 0:20 +0720 1936 Jan 1 +- 7:20 - +0720 1941 Sep 1 +- 7:30 - +0730 1942 Feb 16 +- 9:00 - +09 1945 Sep 12 +- 7:30 - +0730 1982 Jan 1 +- 8:00 - +08 ++# For peninsular Malaysia see Asia/Singapore. ++# + # Sabah & Sarawak + # From Paul Eggert (2014-08-12): + # The data entries here are mostly from Shanks & Pottenger, but the 1942, 1945 +@@ -2768,12 +2748,14 @@ + 8:00 NBorneo +08/+0820 1942 Feb 16 + 9:00 - +09 1945 Sep 12 + 8:00 - +08 ++Link Asia/Kuching Asia/Brunei + + # Maldives + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé + 4:54:00 - MMT 1960 # Malé Mean Time + 5:00 - +05 ++Link Indian/Maldives Indian/Kerguelen + + # Mongolia + +@@ -3608,6 +3590,7 @@ + 9:00 - +09 1945 Sep 12 + 7:30 - +0730 1982 Jan 1 + 8:00 - +08 ++Link Asia/Singapore Asia/Kuala_Lumpur + + # Spratly Is + # no information +@@ -3842,7 +3825,7 @@ + Zone Asia/Dushanbe 4:35:12 - LMT 1924 May 2 + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00s +- 5:00 1:00 +05/+06 1991 Sep 9 2:00s ++ 5:00 1:00 +06 1991 Sep 9 2:00s + 5:00 - +05 + + # Thailand +@@ -3852,6 +3835,7 @@ + 7:00 - +07 + Link Asia/Bangkok Asia/Phnom_Penh # Cambodia + Link Asia/Bangkok Asia/Vientiane # Laos ++Link Asia/Bangkok Indian/Christmas + + # Turkmenistan + # From Shanks & Pottenger. +@@ -3867,6 +3851,8 @@ + Zone Asia/Dubai 3:41:12 - LMT 1920 + 4:00 - +04 + Link Asia/Dubai Asia/Muscat # Oman ++Link Asia/Dubai Indian/Mahe ++Link Asia/Dubai Indian/Reunion + + # Uzbekistan + # Byalokoz 1919 says Uzbekistan was 4:27:53. +@@ -3878,7 +3864,8 @@ + 6:00 - +06 1982 Apr 1 + 5:00 RussiaAsia +05/+06 1992 + 5:00 - +05 +-# Milne says Tashkent was 4:37:10.8; round to nearest. ++# Milne says Tashkent was 4:37:10.8. ++ #STDOFF 4:37:10.8 + Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 + 5:00 - +05 1930 Jun 21 + 6:00 RussiaAsia +06/+07 1991 Mar 31 2:00 +@@ -3897,7 +3884,7 @@ + # The English-language name of Vietnam's most populous city is "Ho Chi Minh + # City"; use Ho_Chi_Minh below to avoid a name of more than 14 characters. + +-# From Paul Eggert (2014-10-21) after a heads-up from Trần Ngọc Quân: ++# From Paul Eggert (2022-07-27) after a 2014 heads-up from Trần Ngọc Quân: + # Trần Tiến Bình's authoritative book "Lịch Việt Nam: thế kỷ XX-XXI (1901-2100)" + # (Nhà xuất bản Văn Hoá - Thông Tin, Hanoi, 2005), pp 49-50, + # is quoted verbatim in: +@@ -3909,8 +3896,8 @@ + # The 1906 transition was effective July 1 and standardized Indochina to + # Phù Liễn Observatory, legally 104° 17' 17" east of Paris. + # It's unclear whether this meant legal Paris Mean Time (00:09:21) or +-# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333... +-# and the latter 07:06:29.333... so either way it rounds to 07:06:30, ++# the Paris Meridian; for now guess the former and round the exact ++# 07:06:30.1333... to 07:06:30.13 as the legal spec used 66 2/3 ms precision. + # which is used below even though the modern-day Phù Liễn Observatory + # is closer to 07:06:31. Abbreviate Phù Liễn Mean Time as PLMT. + # +@@ -3937,7 +3924,8 @@ + # NXB Thuận Hoá, Huế, 1995. + + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Asia/Ho_Chi_Minh 7:06:40 - LMT 1906 Jul 1 ++ #STDOFF 7:06:30.13 ++Zone Asia/Ho_Chi_Minh 7:06:30 - LMT 1906 Jul 1 + 7:06:30 - PLMT 1911 May 1 # Phù Liễn MT + 7:00 - +07 1942 Dec 31 23:00 + 8:00 - +08 1945 Mar 14 23:00 +--- contrib/tzdata/australasia.orig ++++ contrib/tzdata/australasia +@@ -252,16 +252,10 @@ + 10:00 AT AE%sT + + # Christmas +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Indian/Christmas 7:02:52 - LMT 1895 Feb +- 7:00 - +07 ++# See Asia/Bangkok. + + # Cocos (Keeling) Is +-# These islands were ruled by the Ross family from about 1830 to 1978. +-# We don't know when standard time was introduced; for now, we guess 1900. +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Indian/Cocos 6:27:40 - LMT 1900 +- 6:30 - +0630 ++# See Asia/Yangon. + + + # Fiji +@@ -478,6 +472,11 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki + 12:00 - +12 ++Link Pacific/Tarawa Pacific/Funafuti ++Link Pacific/Tarawa Pacific/Majuro ++Link Pacific/Tarawa Pacific/Wake ++Link Pacific/Tarawa Pacific/Wallis ++ + Zone Pacific/Kanton 0 - -00 1937 Aug 31 + -12:00 - -12 1979 Oct + -11:00 - -11 1994 Dec 31 +@@ -491,15 +490,8 @@ + # See Pacific/Guam. + + # Marshall Is ++# See Pacific/Tarawa for most locations. + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Pacific/Majuro 11:24:48 - LMT 1901 +- 11:00 - +11 1914 Oct +- 9:00 - +09 1919 Feb 1 +- 11:00 - +11 1937 +- 10:00 - +10 1941 Apr 1 +- 9:00 - +09 1944 Jan 30 +- 11:00 - +11 1969 Oct +- 12:00 - +12 + Zone Pacific/Kwajalein 11:09:20 - LMT 1901 + 11:00 - +11 1937 + 10:00 - +10 1941 Apr 1 +@@ -509,22 +501,9 @@ + 12:00 - +12 + + # Micronesia ++# For Chuuk and Yap see Pacific/Port_Moresby. ++# For Pohnpei see Pacific/Guadalcanal. + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Pacific/Chuuk -13:52:52 - LMT 1844 Dec 31 +- 10:07:08 - LMT 1901 +- 10:00 - +10 1914 Oct +- 9:00 - +09 1919 Feb 1 +- 10:00 - +10 1941 Apr 1 +- 9:00 - +09 1945 Aug +- 10:00 - +10 +-Zone Pacific/Pohnpei -13:27:08 - LMT 1844 Dec 31 # Kolonia +- 10:32:52 - LMT 1901 +- 11:00 - +11 1914 Oct +- 9:00 - +09 1919 Feb 1 +- 11:00 - +11 1937 +- 10:00 - +10 1941 Apr 1 +- 9:00 - +09 1945 Aug +- 11:00 - +11 + Zone Pacific/Kosrae -13:08:04 - LMT 1844 Dec 31 + 10:51:56 - LMT 1901 + 11:00 - +11 1914 Oct +@@ -594,12 +573,12 @@ + Zone Pacific/Auckland 11:39:04 - LMT 1868 Nov 2 + 11:30 NZ NZ%sT 1946 Jan 1 + 12:00 NZ NZ%sT ++Link Pacific/Auckland Antarctica/McMurdo ++ + Zone Pacific/Chatham 12:13:48 - LMT 1868 Nov 2 + 12:15 - +1215 1946 Jan 1 + 12:45 Chatham +1245/+1345 + +-Link Pacific/Auckland Antarctica/McMurdo +- + # Auckland Is + # uninhabited; Māori and Moriori, colonial settlers, pastoralists, sealers, + # and scientific personnel have wintered +@@ -658,7 +637,7 @@ + + + # Niue +-# See Pacific/Raratonga comments for 1952 transition. ++# See Pacific/Rarotonga comments for 1952 transition. + # + # From Tim Parenti (2021-09-13): + # Consecutive contemporaneous editions of The Air Almanac listed -11:20 for +@@ -694,6 +673,7 @@ + 9:48:32 - PMMT 1895 # Port Moresby Mean Time + 10:00 - +10 + Link Pacific/Port_Moresby Antarctica/DumontDUrville ++Link Pacific/Port_Moresby Pacific/Chuuk + # + # From Paul Eggert (2014-10-13): + # Base the Bougainville entry on the Arawa-Kieta region, which appears to have +@@ -821,6 +801,7 @@ + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Pacific/Guadalcanal 10:39:48 - LMT 1912 Oct # Honiara + 11:00 - +11 ++Link Pacific/Guadalcanal Pacific/Pohnpei + + # Tokelau + # +@@ -861,9 +842,7 @@ + 13:00 Tonga +13/+14 + + # Tuvalu +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Pacific/Funafuti 11:56:52 - LMT 1901 +- 12:00 - +12 ++# See Pacific/Tarawa. + + + # US minor outlying islands +@@ -922,9 +901,7 @@ + # uninhabited since World War II; was probably like Pacific/Kiritimati + + # Wake +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Pacific/Wake 11:06:28 - LMT 1901 +- 12:00 - +12 ++# See Pacific/Tarawa. + + + # Vanuatu +@@ -963,9 +940,7 @@ + 11:00 Vanuatu +11/+12 + + # Wallis and Futuna +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Pacific/Wallis 12:15:20 - LMT 1901 +- 12:00 - +12 ++# See Pacific/Tarawa. + + ############################################################################### + +@@ -1283,6 +1258,7 @@ + # to have the extra hour of sunshine removed from their area." See: + # Daylight saving coming to WA in 2019. Guardian Express. 2018-04-01. + # https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/ ++# [The article ends with "Today's date is April 1."] + + # Queensland + +@@ -1826,16 +1802,12 @@ + # "In Marshall Islands, Friday is followed by Sunday", NY Times. 1993-08-22. + # https://www.nytimes.com/1993/08/22/world/in-marshall-islands-friday-is-followed-by-sunday.html + +-# From Phake Nick (2018-10-27): +-# <https://wiki.suikawiki.org/n/南洋群島の標準時> ... pointed out that +-# currently tzdata say Pacific/Kwajalein switched from GMT+11 to GMT-12 in +-# 1969 October without explanation, however an 1993 article from NYT say it +-# synchorized its day with US mainland about 40 years ago and thus the switch +-# should occur at around 1950s instead. +-# +-# From Paul Eggert (2018-11-18): +-# The NYT (actually, AP) article is vague and possibly wrong about this. +-# The article says the earlier switch was "40 years ago when the United States ++# From Paul Eggert (2022-03-31): ++# Phake Nick (2018-10-27) noted <https://wiki.suikawiki.org/n/南洋群島の標準時>'s ++# citation of a 1993 AP article published in the New York Times saying ++# Kwajalein synchronized its day with the US mainland about 40 years earlier. ++# However the AP article is vague and possibly wrong about this. The article ++# says the earlier switch was "about 40 years ago when the United States + # Army established a missile test range here". However, the Kwajalein Test + # Center was established on 1960-10-01 and was run by the US Navy. It was + # transferred to the US Army on 1964-07-01. See "Seize the High Ground" +@@ -1882,13 +1854,6 @@ + # Like the Ladrones (see Guam commentary), assume the Spanish East Indies + # kept American time until the Philippines switched at the end of 1844. + +-# Alan Eugene Davis writes (1996-03-16), +-# "I am certain, having lived there for the past decade, that 'Truk' +-# (now properly known as Chuuk) ... is in the time zone GMT+10." +-# +-# Shanks & Pottenger write that Truk switched from UT +10 to +11 +-# on 1978-10-01; ignore this for now. +- + # From Paul Eggert (1999-10-29): + # The Federated States of Micronesia Visitors Board writes in + # The Federated States of Micronesia - Visitor Information (1999-01-26) +@@ -2219,7 +2184,7 @@ + # through the third Sunday in January at 03:00, like Fiji, for now. + + # From David Wade (2017-10-18): +-# In August government was disolved by the King. The current prime minister ++# In August government was dissolved by the King. The current prime minister + # continued in office in care taker mode. It is easy to see that few + # decisions will be made until elections 16th November. + # +@@ -2227,26 +2192,6 @@ + # For now, guess that DST is discontinued. That's what the IATA is guessing. + + +-# Wake +- +-# From Vernice Anderson, Personal Secretary to Philip Jessup, +-# US Ambassador At Large (oral history interview, 1971-02-02): +-# +-# Saturday, the 14th [of October, 1950] - ... The time was all the +-# more confusing at that point, because we had crossed the +-# International Date Line, thus getting two Sundays. Furthermore, we +-# discovered that Wake Island had two hours of daylight saving time +-# making calculation of time in Washington difficult if not almost +-# impossible. +-# +-# https://www.trumanlibrary.org/oralhist/andrsonv.htm +- +-# From Paul Eggert (2003-03-23): +-# We have no other report of DST in Wake Island, so omit this info for now. +- +-# See also the commentary for Micronesia. +- +- + ############################################################################### + + # The International Date Line +--- contrib/tzdata/backward.orig ++++ contrib/tzdata/backward +@@ -4,10 +4,15 @@ + # 2009-05-17 by Arthur David Olson. + + # This file provides links from old or merged timezone names to current ones. +-# Many names changed in late 1993. Several of these names are ++# Many names changed in late 1993, and many merged names moved here ++# in the period from 2013 through 2022. 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. + ++# Although this file is optional and tzdb will work if you omit it by ++# building with 'make BACKWARD=', in practice downstream users ++# typically use this file for backward compatibility. ++ + # Link TARGET LINK-NAME + Link Africa/Nairobi Africa/Asmera + Link Africa/Abidjan Africa/Timbuktu +@@ -48,7 +53,7 @@ + Link Asia/Makassar Asia/Ujung_Pandang + Link Asia/Ulaanbaatar Asia/Ulan_Bator + Link Atlantic/Faroe Atlantic/Faeroe +-Link Europe/Oslo Atlantic/Jan_Mayen ++Link Europe/Berlin Atlantic/Jan_Mayen + Link Australia/Sydney Australia/ACT + Link Australia/Sydney Australia/Canberra + Link Australia/Hobart Australia/Currie +@@ -83,6 +88,7 @@ + Link Europe/Dublin Eire + Link Etc/UTC Etc/UCT + Link Europe/London Europe/Belfast ++Link Europe/Kyiv Europe/Kiev + Link Europe/Chisinau Europe/Tiraspol + Link Europe/London GB + Link Europe/London GB-Eire +@@ -91,7 +97,7 @@ + Link Etc/GMT GMT0 + Link Etc/GMT Greenwich + Link Asia/Hong_Kong Hongkong +-Link Atlantic/Reykjavik Iceland ++Link Africa/Abidjan Iceland + Link Asia/Tehran Iran + Link Asia/Jerusalem Israel + Link America/Jamaica Jamaica +@@ -107,10 +113,10 @@ + Link Asia/Shanghai PRC + Link Pacific/Kanton Pacific/Enderbury + Link Pacific/Honolulu Pacific/Johnston +-Link Pacific/Pohnpei Pacific/Ponape ++Link Pacific/Guadalcanal Pacific/Ponape + Link Pacific/Pago_Pago Pacific/Samoa +-Link Pacific/Chuuk Pacific/Truk +-Link Pacific/Chuuk Pacific/Yap ++Link Pacific/Port_Moresby Pacific/Truk ++Link Pacific/Port_Moresby Pacific/Yap + Link Europe/Warsaw Poland + Link Europe/Lisbon Portugal + Link Asia/Taipei ROC +--- contrib/tzdata/backzone.orig ++++ contrib/tzdata/backzone +@@ -65,6 +65,11 @@ + # Zones are sorted by zone name. Each zone is preceded by the + # name of the country that the zone is in, along with any other + # commentary and rules associated with the entry. ++# If the zone overrides links in the main data, it ++# is followed by the corresponding Link lines. ++# If the zone overrides main-data links only when building with ++# PACKRATLIST=zone.tab, it is followed by a commented-out Link line ++# that starts with "#PACKRATLIST zone.tab". + # + # As explained in the zic man page, the zone columns are: + # Zone NAME STDOFF RULES FORMAT [UNTIL] +@@ -181,6 +186,7 @@ + 0:00 - GMT 1934 Feb 26 + -1:00 - -01 1960 Jun 20 + 0:00 - GMT ++#PACKRATLIST zone.tab Link Africa/Bamako Africa/Timbuktu + + # Central African Republic + Zone Africa/Bangui 1:14:20 - LMT 1912 +@@ -498,6 +504,7 @@ + -6:00 1:00 CDT 1942 Feb 9 2:00s + -6:00 Canada C%sT 1945 Sep 30 2:00 + -5:00 - EST ++#PACKRATLIST zone.tab Link America/Atikokan America/Coral_Harbour + + # Quebec east of Natashquan + +@@ -829,6 +836,35 @@ + Zone Antarctica/Syowa 0 - -00 1957 Jan 29 + 3:00 - +03 + ++# Vostok, Antarctica ++# ++# Vostok, since 1957-12-16, temporarily closed 1994-02/1994-11 ++# From Craig Mundell (1994-12-15): ++# http://quest.arc.nasa.gov/antarctica/QA/computers/Directions,Time,ZIP ++# Vostok, which is one of the Russian stations, is set on the same ++# time as Moscow, Russia. ++# ++# From Lee Hotz (2001-03-08): ++# I queried the folks at Columbia who spent the summer at Vostok and this is ++# what they had to say about time there: ++# "in the US Camp (East Camp) we have been on New Zealand (McMurdo) ++# time, which is 12 hours ahead of GMT. The Russian Station Vostok was ++# 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead ++# of GMT). This is a time zone I think two hours east of Moscow. The ++# natural time zone is in between the two: 8 hours ahead of GMT." ++# ++# From Paul Eggert (2001-05-04): ++# This seems to be hopelessly confusing, so I asked Lee Hotz about it ++# in person. He said that some Antarctic locations set their local ++# time so that noon is the warmest part of the day, and that this ++# changes during the year and does not necessarily correspond to mean ++# solar noon. So the Vostok time might have been whatever the clocks ++# happened to be during their visit. So we still don't really know what time ++# it is at Vostok. But we'll guess +06. ++# ++Zone Antarctica/Vostok 0 - -00 1957 Dec 16 ++ 6:00 - +06 ++ + # 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. +@@ -867,6 +903,11 @@ + 4:00 - +04 1972 Jun + 3:00 - +03 + ++# Brunei ++Zone Asia/Brunei 7:39:40 - LMT 1926 Mar # Bandar Seri Begawan ++ 7:30 - +0730 1933 ++ 8:00 - +08 ++ + # India + # + # From Paul Eggert (2014-09-06): +@@ -922,6 +963,20 @@ + 5:00 - +05 1980 May + 8:00 PRC C%sT + ++# peninsular Malaysia ++# taken from Mok Ly Yng (2003-10-30) ++# 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 Asia/Kuala_Lumpur 6:46:46 - LMT 1901 Jan 1 ++ 6:55:25 - SMT 1905 Jun 1 # Singapore M.T. ++ 7:00 - +07 1933 Jan 1 ++ 7:00 0:20 +0720 1936 Jan 1 ++ 7:20 - +0720 1941 Sep 1 ++ 7:30 - +0730 1942 Feb 16 ++ 9:00 - +09 1945 Sep 12 ++ 7:30 - +0730 1982 Jan 1 ++ 8:00 - +08 ++ + # Kuwait + Zone Asia/Kuwait 3:11:56 - LMT 1950 + 3:00 - +03 +@@ -995,6 +1050,64 @@ + # From Whitman: + Zone Atlantic/Jan_Mayen -1:00 - -01 + ++# Iceland ++# ++# From Adam David (1993-11-06): ++# The name of the timezone in Iceland for system / mail / news purposes is GMT. ++# ++# (1993-12-05): ++# This material is paraphrased from the 1988 edition of the University of ++# Iceland Almanak. ++# ++# From January 1st, 1908 the whole of Iceland was standardised at 1 hour ++# behind GMT. Previously, local mean solar time was used in different parts ++# of Iceland, the almanak had been based on Reykjavík mean solar time which ++# was 1 hour and 28 minutes behind GMT. ++# ++# "first day of winter" referred to [below] means the first day of the 26 weeks ++# of winter, according to the old icelandic calendar that dates back to the ++# time the norsemen first settled Iceland. The first day of winter is always ++# Saturday, but is not dependent on the Julian or Gregorian calendars. ++# ++# (1993-12-10): ++# I have a reference from the Oxford Icelandic-English dictionary for the ++# beginning of winter, which ties it to the ecclesiastical calendar (and thus ++# to the julian/gregorian calendar) over the period in question. ++# the winter begins on the Saturday next before St. Luke's day ++# (old style), or on St. Luke's day, if a Saturday. ++# St. Luke's day ought to be traceable from ecclesiastical sources. "old style" ++# might be a reference to the Julian calendar as opposed to Gregorian, or it ++# might mean something else (???). ++# ++# From Paul Eggert (2014-11-22): ++# The information below is taken from the 1988 Almanak; see ++# http://www.almanak.hi.is/klukkan.html ++# ++Rule Iceland 1917 1919 - Feb 19 23:00 1:00 - ++Rule Iceland 1917 only - Oct 21 1:00 0 - ++Rule Iceland 1918 1919 - Nov 16 1:00 0 - ++Rule Iceland 1921 only - Mar 19 23:00 1:00 - ++Rule Iceland 1921 only - Jun 23 1:00 0 - ++Rule Iceland 1939 only - Apr 29 23:00 1:00 - ++Rule Iceland 1939 only - Oct 29 2:00 0 - ++Rule Iceland 1940 only - Feb 25 2:00 1:00 - ++Rule Iceland 1940 1941 - Nov Sun>=2 1:00s 0 - ++Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 - ++# 1943-1946 - first Sunday in March until first Sunday in winter ++Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 - ++Rule Iceland 1942 1948 - Oct Sun>=22 1:00s 0 - ++# 1947-1967 - first Sunday in April until first Sunday in winter ++Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 - ++# 1949 and 1967 Oct transitions delayed by 1 week ++Rule Iceland 1949 only - Oct 30 1:00s 0 - ++Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 - ++Rule Iceland 1967 only - Oct 29 1:00s 0 - ++ ++Zone Atlantic/Reykjavik -1:28 - LMT 1908 ++ -1:00 Iceland -01/+00 1968 Apr 7 1:00s ++ 0:00 - GMT ++Link Atlantic/Reykjavik Iceland ++ + # St Helena + Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown + -0:22:48 - JMT 1951 # Jamestown Mean Time +@@ -1006,6 +1119,82 @@ + 10:00 Aus AE%sT 1968 Oct 15 + 10:00 AT AE%sT + ++ ++# Netherlands ++ ++# Howse writes that the Netherlands' railways used GMT between 1892 and 1940, ++# but for other purposes the Netherlands used Amsterdam mean time. ++ ++# However, Robert H. van Gent writes (2001-04-01): ++# Howse's statement is only correct up to 1909. From 1909-05-01 (00:00:00 ++# Amsterdam mean time) onwards, the whole of the Netherlands (including ++# the Dutch railways) was required by law to observe Amsterdam mean time ++# (19 minutes 32.13 seconds ahead of GMT). This had already been the ++# common practice (except for the railways) for many decades but it was ++# not until 1909 when the Dutch government finally defined this by law. ++# On 1937-07-01 this was changed to 20 minutes (exactly) ahead of GMT and ++# was generally known as Dutch Time ("Nederlandse Tijd"). ++# ++# (2001-04-08): ++# 1892-05-01 was the date when the Dutch railways were by law required to ++# observe GMT while the remainder of the Netherlands adhered to the common ++# practice of following Amsterdam mean time. ++# ++# (2001-04-09): ++# In 1835 the authorities of the province of North Holland requested the ++# municipal authorities of the towns and cities in the province to observe ++# Amsterdam mean time but I do not know in how many cases this request was ++# actually followed. ++# ++# From 1852 onwards the Dutch telegraph offices were by law required to ++# observe Amsterdam mean time. As the time signals from the observatory of ++# Leiden were also distributed by the telegraph system, I assume that most ++# places linked up with the telegraph (and railway) system automatically ++# adopted Amsterdam mean time. ++# ++# Although the early Dutch railway companies initially observed a variety ++# of times, most of them had adopted Amsterdam mean time by 1858 but it ++# was not until 1866 when they were all required by law to observe ++# Amsterdam mean time. ++ ++# 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 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 ++Rule Neth 1917 only - Apr 16 2:00s 1:00 NST ++Rule Neth 1917 only - Sep 17 2:00s 0 AMT ++Rule Neth 1918 1921 - Apr Mon>=1 2:00s 1:00 NST ++Rule Neth 1918 1921 - Sep lastMon 2:00s 0 AMT ++Rule Neth 1922 only - Mar lastSun 2:00s 1:00 NST ++Rule Neth 1922 1936 - Oct Sun>=2 2:00s 0 AMT ++Rule Neth 1923 only - Jun Fri>=1 2:00s 1:00 NST ++Rule Neth 1924 only - Mar lastSun 2:00s 1:00 NST ++Rule Neth 1925 only - Jun Fri>=1 2:00s 1:00 NST ++# From 1926 through 1939 DST began 05-15, except that it was delayed by a week ++# in years when 05-15 fell in the Pentecost weekend. ++Rule Neth 1926 1931 - May 15 2:00s 1:00 NST ++Rule Neth 1932 only - May 22 2:00s 1:00 NST ++Rule Neth 1933 1936 - May 15 2:00s 1:00 NST ++Rule Neth 1937 only - May 22 2:00s 1:00 NST ++Rule Neth 1937 only - Jul 1 0:00 1:00 S ++Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 - ++Rule Neth 1938 1939 - May 15 2:00s 1:00 S ++Rule Neth 1945 only - Apr 2 2:00s 1:00 S ++Rule Neth 1945 only - Sep 16 2:00s 0 - ++ #STDOFF 0:19:32.13 ++Zone Europe/Amsterdam 0:19:32 - LMT 1835 ++ 0:19:32 Neth %s 1937 Jul 1 ++ 0:20 Neth +0020/+0120 1940 May 16 0:00 ++ 1:00 C-Eur CE%sT 1945 Apr 2 2:00 ++ 1:00 Neth CE%sT 1977 ++ 1:00 EU CE%sT ++ ++ + # Northern Ireland + Zone Europe/Belfast -0:23:40 - LMT 1880 Aug 2 + -0:25:21 - DMT 1916 May 21 2:00 +@@ -1017,6 +1206,60 @@ + 0:00 GB-Eire %s 1996 + 0:00 EU GMT/BST + ++ ++# Denmark ++ ++# From Jesper Nørgaard Welen (2005-04-26): ++# the law [introducing standard time] was in effect from 1894-01-01.... ++# The page https://www.retsinformation.dk/eli/lta/1893/83 ++# confirms this, and states that the law was put forth 1893-03-29. ++# ++# The EU [actually, EEC and Euratom] treaty with effect from 1973: ++# https://www.retsinformation.dk/eli/lta/1972/21100 ++# ++# This provoked a new law from 1974 to make possible summer time changes ++# in subsequent decrees with the law ++# https://www.retsinformation.dk/eli/lta/1974/223 ++# ++# It seems however that no decree was set forward until 1980. I have ++# not found any decree, but in another related law, the effecting DST ++# changes are stated explicitly to be from 1980-04-06 at 02:00 to ++# 1980-09-28 at 02:00. If this is true, this differs slightly from ++# the EU rule in that DST runs to 02:00, not 03:00. We don't know ++# when Denmark began using the EU rule correctly, but we have only ++# confirmation of the 1980-time, so I presume it was correct in 1981: ++# The law is about the management of the extra hour, concerning ++# working hours reported and effect on obligatory-rest rules (which ++# was suspended on that night): ++# https://web.archive.org/web/20140104053304/https://www.retsinformation.dk/Forms/R0710.aspx?id=60267 ++ ++# From Jesper Nørgaard Welen (2005-06-11): ++# The Herning Folkeblad (1980-09-26) reported that the night between ++# Saturday and Sunday the clock is set back from three to two. ++ ++# From Paul Eggert (2005-06-11): ++# Hence the "02:00" of the 1980 law refers to standard time, not ++# wall-clock time, and so the EU rules were in effect in 1980. ++ ++Rule Denmark 1916 only - May 14 23:00 1:00 S ++Rule Denmark 1916 only - Sep 30 23:00 0 - ++Rule Denmark 1940 only - May 15 0:00 1:00 S ++Rule Denmark 1945 only - Apr 2 2:00s 1:00 S ++Rule Denmark 1945 only - Aug 15 2:00s 0 - ++Rule Denmark 1946 only - May 1 2:00s 1:00 S ++Rule Denmark 1946 only - Sep 1 2:00s 0 - ++Rule Denmark 1947 only - May 4 2:00s 1:00 S ++Rule Denmark 1947 only - Aug 10 2:00s 0 - ++Rule Denmark 1948 only - May 9 2:00s 1:00 S ++Rule Denmark 1948 only - Aug 8 2:00s 0 - ++# ++Zone Europe/Copenhagen 0:50:20 - LMT 1890 ++ 0:50:20 - CMT 1894 Jan 1 # Copenhagen MT ++ 1:00 Denmark CE%sT 1942 Nov 2 2:00s ++ 1:00 C-Eur CE%sT 1945 Apr 2 2:00 ++ 1:00 Denmark CE%sT 1980 ++ 1:00 EU CE%sT ++ + # Guernsey + # Data from Joseph S. Myers + # https://mm.icann.org/pipermail/tz/2013-September/019883.html +@@ -1072,6 +1315,86 @@ + 1:00 - CET 1982 Nov 27 + 1:00 EU CE%sT + ++ ++# Luxembourg ++ ++# Whitman disagrees with most of these dates in minor ways; ++# go with Shanks & Pottenger. ++Rule Lux 1916 only - May 14 23:00 1:00 S ++Rule Lux 1916 only - Oct 1 1:00 0 - ++Rule Lux 1917 only - Apr 28 23:00 1:00 S ++Rule Lux 1917 only - Sep 17 1:00 0 - ++Rule Lux 1918 only - Apr Mon>=15 2:00s 1:00 S ++Rule Lux 1918 only - Sep Mon>=15 2:00s 0 - ++Rule Lux 1919 only - Mar 1 23:00 1:00 S ++Rule Lux 1919 only - Oct 5 3:00 0 - ++Rule Lux 1920 only - Feb 14 23:00 1:00 S ++Rule Lux 1920 only - Oct 24 2:00 0 - ++Rule Lux 1921 only - Mar 14 23:00 1:00 S ++Rule Lux 1921 only - Oct 26 2:00 0 - ++Rule Lux 1922 only - Mar 25 23:00 1:00 S ++Rule Lux 1922 only - Oct Sun>=2 1:00 0 - ++Rule Lux 1923 only - Apr 21 23:00 1:00 S ++Rule Lux 1923 only - Oct Sun>=2 2:00 0 - ++Rule Lux 1924 only - Mar 29 23:00 1:00 S ++Rule Lux 1924 1928 - Oct Sun>=2 1:00 0 - ++Rule Lux 1925 only - Apr 5 23:00 1:00 S ++Rule Lux 1926 only - Apr 17 23:00 1:00 S ++Rule Lux 1927 only - Apr 9 23:00 1:00 S ++Rule Lux 1928 only - Apr 14 23:00 1:00 S ++Rule Lux 1929 only - Apr 20 23:00 1:00 S ++ ++Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun ++ 1:00 Lux CE%sT 1918 Nov 25 ++ 0:00 Lux WE%sT 1929 Oct 6 2:00s ++ 0:00 Belgium WE%sT 1940 May 14 3:00 ++ 1:00 C-Eur WE%sT 1944 Sep 18 3:00 ++ 1:00 Belgium CE%sT 1977 ++ 1:00 EU CE%sT ++ ++# Monaco ++# ++# From Michael Deckers (2020-06-12): ++# In the "Journal de Monaco" of 1892-05-24, online at ++# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c67c12c5af11b41ea888fb048e4fe8.pdf ++# we read: ... ++# [In virtue of a Sovereign Ordinance of the May 13 of the current [year], ++# legal time in the Principality will be set to, from the date of June 1, ++# 1892 onwards, to the meridian of Paris, as in France.] ++# In the "Journal de Monaco" of 1911-03-28, online at ++# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74ffb7db53d4f599059fe8f0ed482a.pdf ++# we read an ordinance of 1911-03-16: ... ++# [Legal time in the Principality will be set, from the date of promulgation ++# of the present ordinance, to legal time in France.... Consequently, legal ++# time will be retarded by 9 minutes and 21 seconds.] ++# ++Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1 ++ 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time ++ 0:00 France WE%sT 1945 Sep 16 3:00 ++ 1:00 France CE%sT 1977 ++ 1:00 EU CE%sT ++ ++ ++# Norway ++ ++# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks & ++# Pottenger. ++Rule Norway 1916 only - May 22 1:00 1:00 S ++Rule Norway 1916 only - Sep 30 0:00 0 - ++Rule Norway 1945 only - Apr 2 2:00s 1:00 S ++Rule Norway 1945 only - Oct 1 2:00s 0 - ++Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S ++Rule Norway 1959 1965 - Sep Sun>=15 2:00s 0 - ++Rule Norway 1965 only - Apr 25 2:00s 1:00 S ++ ++Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 ++ 1:00 Norway CE%sT 1940 Aug 10 23:00 ++ 1:00 C-Eur CE%sT 1945 Apr 2 2:00 ++ 1:00 Norway CE%sT 1980 ++ 1:00 EU CE%sT ++Link Europe/Oslo Arctic/Longyearbyen ++#PACKRATLIST zone.tab Link Europe/Oslo Atlantic/Jan_Mayen ++ + # Bosnia and Herzegovina + Zone Europe/Sarajevo 1:13:40 - LMT 1884 + 1:00 - CET 1941 Apr 18 23:00 +@@ -1089,6 +1412,62 @@ + 1:00 EU CE%sT + + ++# Sweden ++ ++# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger: ++# ++# The law "Svensk författningssamling 1878, no 14" about standard time in 1879: ++# From the beginning of 1879 (that is 01-01 00:00) the time for all ++# places in the country is "the mean solar time for the meridian at ++# three degrees, or twelve minutes of time, to the west of the ++# meridian of the Observatory of Stockholm". The law is dated 1878-05-31. ++# ++# The observatory at that time had the meridian 18° 03' 30" ++# eastern longitude = 01:12:14 in time. Less 12 minutes gives the ++# national standard time as 01:00:14 ahead of GMT.... ++# ++# About the beginning of CET in Sweden. The lawtext ("Svensk ++# författningssamling 1899, no 44") states, that "from the beginning ++# of 1900... ... the same as the mean solar time for the meridian at ++# the distance of one hour of time from the meridian of the English ++# observatory at Greenwich, or at 12 minutes 14 seconds to the west ++# from the meridian of the Observatory of Stockholm". The law is dated ++# 1899-06-16. In short: At 1900-01-01 00:00:00 the new standard time ++# in Sweden is 01:00:00 ahead of GMT. ++# ++# 1916: The lawtext ("Svensk författningssamling 1916, no 124") states ++# that "1916-05-15 is considered to begin one hour earlier". It is ++# pretty obvious that at 05-14 23:00 the clocks are set to 05-15 00:00.... ++# Further the law says, that "1916-09-30 is considered to end one hour later". ++# ++# The laws regulating [DST] are available on the site of the Swedish ++# Parliament beginning with 1985 - the laws regulating 1980/1984 are ++# not available on the site (to my knowledge they are only available ++# in Swedish): <http://www.riksdagen.se/english/work/sfst.asp> (type ++# "sommartid" without the quotes in the field "Fritext" and then click ++# the Sök-button). ++# ++# (2001-05-13): ++# ++# I have now found a newspaper stating that at 1916-10-01 01:00 ++# summertime the church-clocks etc were set back one hour to show ++# 1916-10-01 00:00 standard time. The article also reports that some ++# people thought the switch to standard time would take place already ++# at 1916-10-01 00:00 summer time, but they had to wait for another ++# hour before the event took place. ++# ++# 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 Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 ++ 1:00:14 - SET 1900 Jan 1 # Swedish Time ++ 1:00 - CET 1916 May 14 23:00 ++ 1:00 1:00 CEST 1916 Oct 1 1:00 ++ 1:00 - CET 1980 ++ 1:00 EU CE%sT ++ + + # Moldova / Transnistria + Zone Europe/Tiraspol 1:58:32 - LMT 1880 +@@ -1102,6 +1481,15 @@ + 3:00 Russia MSK/MSD + + # Liechtenstein ++ ++# From Paul Eggert (2022-07-21): ++# Shanks & Pottenger say Vaduz is like Zurich starting June 1894. ++ ++# From Alois Treindl (2019-07-04): ++# I was able to access the online archive of the Vaduz paper Vaterland ... ++# I could confirm from the paper that Liechtenstein did in fact follow ++# the same DST in 1941 and 1942 as Switzerland did. ++ + Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT +@@ -1120,14 +1508,87 @@ + 3:00 1:00 EAST 1954 May 29 23:00s + 3:00 - EAT + ++# Christmas ++Zone Indian/Christmas 7:02:52 - LMT 1895 Feb ++ 7:00 - +07 ++ ++# Cocos (Keeling) Is ++# These islands were ruled by the Ross family from about 1830 to 1978. ++# We don't know when standard time was introduced; for now, we guess 1900. ++Zone Indian/Cocos 6:27:40 - LMT 1900 ++ 6:30 - +0630 ++ + # Comoros + Zone Indian/Comoro 2:53:04 - LMT 1911 Jul # Moroni, Gran Comoro + 3:00 - EAT + ++# Kerguelen ++Zone Indian/Kerguelen 0 - -00 1950 # Port-aux-Français ++ 5:00 - +05 ++ ++# Seychelles ++# ++# From P Chan (2020-11-27): ++# Standard Time was adopted on 1907-01-01. ++# ++# Standard Time Ordinance (Chapter 237) ++# The Laws of Seychelles in Force on the 31st December, 1971, Vol. 6, p 571 ++# https://books.google.com/books?id=efE-AQAAIAAJ&pg=PA571 ++# ++# From Tim Parenti (2020-12-05): ++# A footnote on https://books.google.com/books?id=DYdDAQAAMAAJ&pg=PA1689 ++# confirms that Ordinance No. 9 of 1906 "was brought into force on the 1st ++# January, 1907." ++ ++Zone Indian/Mahe 3:41:48 - LMT 1907 Jan 1 # Victoria ++ 4:00 - +04 ++# From Paul Eggert (2001-05-30): ++# Aldabra, Farquhar, and Desroches, originally dependencies of the ++# Seychelles, were transferred to the British Indian Ocean Territory ++# in 1965 and returned to Seychelles control in 1976. We don't know ++# whether this affected their time zone, so omit this for now. ++# Possibly the islands were uninhabited. ++ ++ + # Mayotte + Zone Indian/Mayotte 3:00:56 - LMT 1911 Jul # Mamoutzou + 3:00 - EAT + ++# Réunion ++Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis ++ 4:00 - +04 ++# ++# 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, ++# in French; no longer available as of 1999-08-17). ++# We have no info about their time zone histories. ++# ++# Bassas da India - uninhabited ++# Europa Island - inhabited from 1905 to 1910 by two families ++# Glorioso Is - inhabited until at least 1958 ++# Juan de Nova - uninhabited ++# Tromelin - inhabited until at least 1958 ++ ++# Micronesia ++# Also see Pacific/Pohnpei and commentary for Micronesia in 'australasia'. ++# ++# From Paul Eggert (2018-11-18): ++# Alan Eugene Davis writes (1996-03-16), ++# "I am certain, having lived there for the past decade, that 'Truk' ++# (now properly known as Chuuk) ... is in the time zone GMT+10." ++# Shanks & Pottenger write that Truk switched from UT +10 to +11 ++# on 1978-10-01; ignore this for now. ++Zone Pacific/Chuuk -13:52:52 - LMT 1844 Dec 31 ++ 10:07:08 - LMT 1901 ++ 10:00 - +10 1914 Oct ++ 9:00 - +09 1919 Feb 1 ++ 10:00 - +10 1941 Apr 1 ++ 9:00 - +09 1945 Aug ++ 10:00 - +10 ++Link Pacific/Chuuk Pacific/Truk ++Link Pacific/Chuuk Pacific/Yap ++ + # Phoenix Islands, Kiribati + # From Paul Eggert (2021-05-27): + # Enderbury was inhabited 1860/1880s to mine guano, and 1938-03-06/1942-02-09 +@@ -1140,9 +1601,23 @@ + -12:00 - -12 1942 Feb 9 + 0 - -00 + ++# Tuvalu ++Zone Pacific/Funafuti 11:56:52 - LMT 1901 ++ 12:00 - +12 ++ + # Johnston + Zone Pacific/Johnston -10:00 - HST + ++# Marshall Is ++Zone Pacific/Majuro 11:24:48 - LMT 1901 ++ 11:00 - +11 1914 Oct ++ 9:00 - +09 1919 Feb 1 ++ 11:00 - +11 1937 ++ 10:00 - +10 1941 Apr 1 ++ 9:00 - +09 1944 Jan 30 ++ 11:00 - +11 1969 Oct ++ 12:00 - +12 ++ + # Midway + # + # From Mark Brader (2005-01-23): +@@ -1160,6 +1635,18 @@ + -11:00 1:00 -10 1956 Sep 2 + -11:00 - -11 + ++# Micronesia ++# Also see Pacific/Chuuk and commentary for Micronesia in 'australasia'. ++Zone Pacific/Pohnpei -13:27:08 - LMT 1844 Dec 31 # Kolonia ++ 10:32:52 - LMT 1901 ++ 11:00 - +11 1914 Oct ++ 9:00 - +09 1919 Feb 1 ++ 11:00 - +11 1937 ++ 10:00 - +10 1941 Apr 1 ++ 9:00 - +09 1945 Aug ++ 11:00 - +11 ++Link Pacific/Pohnpei Pacific/Ponape ++ + # N Mariana Is + Zone Pacific/Saipan -14:17:00 - LMT 1844 Dec 31 + 9:43:00 - LMT 1901 +@@ -1167,6 +1654,33 @@ + 10:00 - +10 2000 Dec 23 + 10:00 - ChST # Chamorro Standard Time + ++ ++# Wake ++ ++# From Vernice Anderson, Personal Secretary to Philip Jessup, ++# US Ambassador At Large (oral history interview, 1971-02-02): ++# ++# Saturday, the 14th [of October, 1950] - ... The time was all the ++# more confusing at that point, because we had crossed the ++# International Date Line, thus getting two Sundays. Furthermore, we ++# discovered that Wake Island had two hours of daylight saving time ++# making calculation of time in Washington difficult if not almost ++# impossible. ++# ++# https://www.trumanlibrary.org/oralhist/andrsonv.htm ++ ++# From Paul Eggert (2003-03-23): ++# We have no other report of DST in Wake Island, so omit this info for now. ++ ++# Also see commentary for Micronesia in 'australasia'. ++Zone Pacific/Wake 11:06:28 - LMT 1901 ++ 12:00 - +12 ++ ++ ++# Wallis and Futuna ++Zone Pacific/Wallis 12:15:20 - LMT 1901 ++ 12:00 - +12 ++ + # Local Variables: + # coding: utf-8 + # End: +--- contrib/tzdata/calendars.orig ++++ contrib/tzdata/calendars +@@ -71,7 +71,7 @@ + + Grotefend's data + +-From: "Michael Palmer" [with one obvious typo fixed] ++From: "Michael Palmer" [with two obvious typos fixed] + Subject: Re: Gregorian Calendar (was Re: Another FHC related question + Newsgroups: soc.genealogy.german + Date: Tue, 9 Feb 1999 02:32:48 -800 +@@ -142,7 +142,7 @@ + + 31 Dec 1700/ + 12 Jan 1701 - Friesland, Groningen, Zürich, Bern, Basel, Geneva, +- Turgau, and Schaffhausen ++ Thurgau, and Schaffhausen + + 1724 - Glarus, Appenzell, and the city of St. Gallen + +--- contrib/tzdata/etcetera.orig ++++ contrib/tzdata/etcetera +@@ -17,13 +17,17 @@ + # behind GMT but uses the completely misleading abbreviation "GMT". + + Zone Etc/GMT 0 - GMT ++ ++# The following zone is used by tzcode functions like gmtime, ++# which load the "UTC" file to handle seconds properly. + Zone Etc/UTC 0 - UTC + + # The following link uses older naming conventions, + # but it belongs here, not in the file 'backward', +-# as functions like gmtime load the "UTC" file to handle leap seconds properly. +-# We want this to work even on installations that omit the other older names. +-Link Etc/UTC UTC ++# as it is needed for tzcode releases through 2022a, ++# where functions like gmtime load "GMT" instead of the "Etc/UTC". ++# We want this to work even on installations that omit 'backward'. ++Link Etc/GMT GMT + + Link Etc/UTC Etc/Universal + Link Etc/UTC Etc/Zulu +--- contrib/tzdata/europe.orig ++++ contrib/tzdata/europe +@@ -303,8 +303,7 @@ + # UT-00:25:22 and cites the International Telegraph Bureau. As it is + # not clear that there was any practical significance to the change + # from UT-00:25:22 to UT-00:25:21.1 in civil timekeeping, omit this +-# transition for now and just use the latter value, omitting its +-# fraction since our format cannot represent fractions. ++# transition for now and just use the latter value. + + # "Countess Markievicz ... claimed that the [1916] abolition of Dublin Mean Time + # was among various actions undertaken by the 'English' government that +@@ -500,7 +499,7 @@ + # Use Europe/London for Jersey, Guernsey, and the Isle of Man. + + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/London -0:01:15 - LMT 1847 Dec 1 0:00s ++Zone Europe/London -0:01:15 - LMT 1847 Dec 1 + 0:00 GB-Eire %s 1968 Oct 27 + 1:00 - BST 1971 Oct 31 2:00u + 0:00 GB-Eire %s 1996 +@@ -538,7 +537,8 @@ + Rule Eire 1996 max - Oct lastSun 1:00u -1:00 - + + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 ++ #STDOFF -0:25:21.1 ++Zone Europe/Dublin -0:25:21 - LMT 1880 Aug 2 + -0:25:21 - DMT 1916 May 21 2:00s + -0:25:21 1:00 IST 1916 Oct 1 2:00s + 0:00 GB-Eire %s 1921 Dec 6 # independence +@@ -961,6 +961,8 @@ + 1:00 C-Eur CE%sT 1944 Sep 3 + 1:00 Belgium CE%sT 1977 + 1:00 EU CE%sT ++Link Europe/Brussels Europe/Amsterdam ++Link Europe/Brussels Europe/Luxembourg + + # Bosnia and Herzegovina + # See Europe/Belgrade. +@@ -1023,62 +1025,12 @@ + # End of rearguard section. + 1:00 Czech CE%sT 1979 + 1:00 EU CE%sT +-# Use Europe/Prague also for Slovakia. ++Link Europe/Prague Europe/Bratislava + +-# Denmark, Faroe Islands, and Greenland + +-# From Jesper Nørgaard Welen (2005-04-26): +-# the law [introducing standard time] was in effect from 1894-01-01.... +-# The page https://www.retsinformation.dk/eli/lta/1893/83 +-# confirms this, and states that the law was put forth 1893-03-29. +-# +-# The EU [actually, EEC and Euratom] treaty with effect from 1973: +-# https://www.retsinformation.dk/eli/lta/1972/21100 +-# +-# This provoked a new law from 1974 to make possible summer time changes +-# in subsequent decrees with the law +-# https://www.retsinformation.dk/eli/lta/1974/223 +-# +-# It seems however that no decree was set forward until 1980. I have +-# not found any decree, but in another related law, the effecting DST +-# changes are stated explicitly to be from 1980-04-06 at 02:00 to +-# 1980-09-28 at 02:00. If this is true, this differs slightly from +-# the EU rule in that DST runs to 02:00, not 03:00. We don't know +-# when Denmark began using the EU rule correctly, but we have only +-# confirmation of the 1980-time, so I presume it was correct in 1981: +-# The law is about the management of the extra hour, concerning +-# working hours reported and effect on obligatory-rest rules (which +-# was suspended on that night): +-# https://web.archive.org/web/20140104053304/https://www.retsinformation.dk/Forms/R0710.aspx?id=60267 +- +-# From Jesper Nørgaard Welen (2005-06-11): +-# The Herning Folkeblad (1980-09-26) reported that the night between +-# Saturday and Sunday the clock is set back from three to two. +- +-# From Paul Eggert (2005-06-11): +-# Hence the "02:00" of the 1980 law refers to standard time, not +-# wall-clock time, and so the EU rules were in effect in 1980. ++# Denmark, Faroe Islands, and Greenland ++# For Denmark see Europe/Berlin. + +-# Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Denmark 1916 only - May 14 23:00 1:00 S +-Rule Denmark 1916 only - Sep 30 23:00 0 - +-Rule Denmark 1940 only - May 15 0:00 1:00 S +-Rule Denmark 1945 only - Apr 2 2:00s 1:00 S +-Rule Denmark 1945 only - Aug 15 2:00s 0 - +-Rule Denmark 1946 only - May 1 2:00s 1:00 S +-Rule Denmark 1946 only - Sep 1 2:00s 0 - +-Rule Denmark 1947 only - May 4 2:00s 1:00 S +-Rule Denmark 1947 only - Aug 10 2:00s 0 - +-Rule Denmark 1948 only - May 9 2:00s 1:00 S +-Rule Denmark 1948 only - Aug 8 2:00s 0 - +-# +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Copenhagen 0:50:20 - LMT 1890 +- 0:50:20 - CMT 1894 Jan 1 # Copenhagen MT +- 1:00 Denmark CE%sT 1942 Nov 2 2:00s +- 1:00 C-Eur CE%sT 1945 Apr 2 2:00 +- 1:00 Denmark CE%sT 1980 +- 1:00 EU CE%sT + Zone Atlantic/Faroe -0:27:04 - LMT 1908 Jan 11 # Tórshavn + 0:00 - WET 1981 + 0:00 EU WE%sT +@@ -1298,10 +1250,10 @@ + Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S + Rule Finland 1981 1982 - Sep lastSun 3:00 0 - + +-# Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document); +-# round to nearest. ++# Milne says Helsinki (Helsingfors) time was 1:39:49.2 (official document). + + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF 1:39:49.2 + Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 + 1:39:49 - HMT 1921 May # Helsinki Mean Time + 2:00 Finland EE%sT 1983 +@@ -1448,6 +1400,7 @@ + 0:00 France WE%sT 1945 Sep 16 3:00 + 1:00 France CE%sT 1977 + 1:00 EU CE%sT ++Link Europe/Paris Europe/Monaco + + # Germany + +@@ -1491,21 +1444,11 @@ + 1:00 SovietZone CE%sT 1946 + 1:00 Germany CE%sT 1980 + 1:00 EU CE%sT ++Link Europe/Berlin Arctic/Longyearbyen ++Link Europe/Berlin Europe/Copenhagen ++Link Europe/Berlin Europe/Oslo ++Link Europe/Berlin Europe/Stockholm + +-# From Tobias Conradi (2011-09-12): +-# Büsingen <http://www.buesingen.de>, surrounded by the Swiss canton +-# Schaffhausen, did not start observing DST in 1980 as the rest of DE +-# (West Germany at that time) and DD (East Germany at that time) did. +-# DD merged into DE, the area is currently covered by code DE in ISO 3166-1, +-# which in turn is covered by the zone Europe/Berlin. +-# +-# Source for the time in Büsingen 1980: +-# http://www.srf.ch/player/video?id=c012c029-03b7-4c2b-9164-aa5902cd58d3 +- +-# From Arthur David Olson (2012-03-03): +-# Büsingen and Zurich have shared clocks since 1970. +- +-Link Europe/Zurich Europe/Busingen + + # Georgia + # Please see the "asia" file for Asia/Tbilisi. +@@ -1514,7 +1457,7 @@ + + # Gibraltar + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 0:00s ++Zone Europe/Gibraltar -0:21:24 - LMT 1880 Aug 2 + 0:00 GB-Eire %s 1957 Apr 14 2:00 + 1:00 - CET 1982 + 1:00 EU CE%sT +@@ -1625,62 +1568,7 @@ + 1:00 EU CE%sT + + # Iceland +-# +-# From Adam David (1993-11-06): +-# The name of the timezone in Iceland for system / mail / news purposes is GMT. +-# +-# (1993-12-05): +-# This material is paraphrased from the 1988 edition of the University of +-# Iceland Almanak. +-# +-# From January 1st, 1908 the whole of Iceland was standardised at 1 hour +-# behind GMT. Previously, local mean solar time was used in different parts +-# of Iceland, the almanak had been based on Reykjavík mean solar time which +-# was 1 hour and 28 minutes behind GMT. +-# +-# "first day of winter" referred to [below] means the first day of the 26 weeks +-# of winter, according to the old icelandic calendar that dates back to the +-# time the norsemen first settled Iceland. The first day of winter is always +-# Saturday, but is not dependent on the Julian or Gregorian calendars. +-# +-# (1993-12-10): +-# I have a reference from the Oxford Icelandic-English dictionary for the +-# beginning of winter, which ties it to the ecclesiastical calendar (and thus +-# to the julian/gregorian calendar) over the period in question. +-# the winter begins on the Saturday next before St. Luke's day +-# (old style), or on St. Luke's day, if a Saturday. +-# St. Luke's day ought to be traceable from ecclesiastical sources. "old style" +-# might be a reference to the Julian calendar as opposed to Gregorian, or it +-# might mean something else (???). +-# +-# From Paul Eggert (2014-11-22): +-# The information below is taken from the 1988 Almanak; see +-# http://www.almanak.hi.is/klukkan.html +-# +-# Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Iceland 1917 1919 - Feb 19 23:00 1:00 - +-Rule Iceland 1917 only - Oct 21 1:00 0 - +-Rule Iceland 1918 1919 - Nov 16 1:00 0 - +-Rule Iceland 1921 only - Mar 19 23:00 1:00 - +-Rule Iceland 1921 only - Jun 23 1:00 0 - +-Rule Iceland 1939 only - Apr 29 23:00 1:00 - +-Rule Iceland 1939 only - Oct 29 2:00 0 - +-Rule Iceland 1940 only - Feb 25 2:00 1:00 - +-Rule Iceland 1940 1941 - Nov Sun>=2 1:00s 0 - +-Rule Iceland 1941 1942 - Mar Sun>=2 1:00s 1:00 - +-# 1943-1946 - first Sunday in March until first Sunday in winter +-Rule Iceland 1943 1946 - Mar Sun>=1 1:00s 1:00 - +-Rule Iceland 1942 1948 - Oct Sun>=22 1:00s 0 - +-# 1947-1967 - first Sunday in April until first Sunday in winter +-Rule Iceland 1947 1967 - Apr Sun>=1 1:00s 1:00 - +-# 1949 and 1967 Oct transitions delayed by 1 week +-Rule Iceland 1949 only - Oct 30 1:00s 0 - +-Rule Iceland 1950 1966 - Oct Sun>=22 1:00s 0 - +-Rule Iceland 1967 only - Oct 29 1:00s 0 - +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Atlantic/Reykjavik -1:28 - LMT 1908 +- -1:00 Iceland -01/+00 1968 Apr 7 1:00s +- 0:00 - GMT ++# See Africa/Abidjan. + + # Italy + # +@@ -1796,19 +1684,19 @@ + Rule Italy 1979 only - Sep 30 0:00s 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone Europe/Rome 0:49:56 - LMT 1866 Dec 12 +- 0:49:56 - RMT 1893 Oct 31 23:49:56 # Rome Mean ++ 0:49:56 - RMT 1893 Oct 31 23:00u # Rome Mean + 1:00 Italy CE%sT 1943 Sep 10 + 1:00 C-Eur CE%sT 1944 Jun 4 + 1:00 Italy CE%sT 1980 + 1:00 EU CE%sT ++Link Europe/Rome Europe/Vatican ++Link Europe/Rome Europe/San_Marino ++ + + # Kosovo + # See Europe/Belgrade. + + +-Link Europe/Rome Europe/Vatican +-Link Europe/Rome Europe/San_Marino +- + # Latvia + + # From Liene Kanepe (1998-09-17): +@@ -1892,16 +1780,7 @@ + 2:00 EU EE%sT + + # Liechtenstein +- +-# From Paul Eggert (2013-09-09): +-# Shanks & Pottenger say Vaduz is like Zurich. +- +-# From Alois Treindl (2019-07-04): +-# I was able to access the online archive of the Vaduz paper Vaterland ... +-# I could confirm from the paper that Liechtenstein did in fact follow +-# the same DST in 1941 and 1942 as Switzerland did. +- +-Link Europe/Zurich Europe/Vaduz ++# See Europe/Zurich. + + + # Lithuania +@@ -1957,40 +1836,7 @@ + 2:00 EU EE%sT + + # Luxembourg +-# Whitman disagrees with most of these dates in minor ways; +-# go with Shanks & Pottenger. +-# Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Lux 1916 only - May 14 23:00 1:00 S +-Rule Lux 1916 only - Oct 1 1:00 0 - +-Rule Lux 1917 only - Apr 28 23:00 1:00 S +-Rule Lux 1917 only - Sep 17 1:00 0 - +-Rule Lux 1918 only - Apr Mon>=15 2:00s 1:00 S +-Rule Lux 1918 only - Sep Mon>=15 2:00s 0 - +-Rule Lux 1919 only - Mar 1 23:00 1:00 S +-Rule Lux 1919 only - Oct 5 3:00 0 - +-Rule Lux 1920 only - Feb 14 23:00 1:00 S +-Rule Lux 1920 only - Oct 24 2:00 0 - +-Rule Lux 1921 only - Mar 14 23:00 1:00 S +-Rule Lux 1921 only - Oct 26 2:00 0 - +-Rule Lux 1922 only - Mar 25 23:00 1:00 S +-Rule Lux 1922 only - Oct Sun>=2 1:00 0 - +-Rule Lux 1923 only - Apr 21 23:00 1:00 S +-Rule Lux 1923 only - Oct Sun>=2 2:00 0 - +-Rule Lux 1924 only - Mar 29 23:00 1:00 S +-Rule Lux 1924 1928 - Oct Sun>=2 1:00 0 - +-Rule Lux 1925 only - Apr 5 23:00 1:00 S +-Rule Lux 1926 only - Apr 17 23:00 1:00 S +-Rule Lux 1927 only - Apr 9 23:00 1:00 S +-Rule Lux 1928 only - Apr 14 23:00 1:00 S +-Rule Lux 1929 only - Apr 20 23:00 1:00 S +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Luxembourg 0:24:36 - LMT 1904 Jun +- 1:00 Lux CE%sT 1918 Nov 25 +- 0:00 Lux WE%sT 1929 Oct 6 2:00s +- 0:00 Belgium WE%sT 1940 May 14 3:00 +- 1:00 C-Eur WE%sT 1944 Sep 18 3:00 +- 1:00 Belgium CE%sT 1977 +- 1:00 EU CE%sT ++# See Europe/Brussels. + + # North Macedonia + # See Europe/Belgrade. +@@ -2009,7 +1855,7 @@ + Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 - + Rule Malta 1980 only - Mar 31 2:00 1:00 S + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 0:00s # Valletta ++Zone Europe/Malta 0:58:04 - LMT 1893 Nov 2 # Valletta + 1:00 Italy CE%sT 1973 Mar 31 + 1:00 Malta CE%sT 1981 + 1:00 EU CE%sT +@@ -2091,126 +1937,16 @@ + 2:00 Moldova EE%sT + + # Monaco +-# +-# From Michael Deckers (2020-06-12): +-# In the "Journal de Monaco" of 1892-05-24, online at +-# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/b1c67c12c5af11b41ea888fb048e4fe8.pdf +-# we read: ... +-# [In virtue of a Sovereign Ordinance of the May 13 of the current [year], +-# legal time in the Principality will be set to, from the date of June 1, +-# 1892 onwards, to the meridian of Paris, as in France.] +-# In the "Journal de Monaco" of 1911-03-28, online at +-# https://journaldemonaco.gouv.mc/var/jdm/storage/original/application/de74ffb7db53d4f599059fe8f0ed482a.pdf +-# we read an ordinance of 1911-03-16: ... +-# [Legal time in the Principality will be set, from the date of promulgation +-# of the present ordinance, to legal time in France.... Consequently, legal +-# time will be retarded by 9 minutes and 21 seconds.] +-# +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Monaco 0:29:32 - LMT 1892 Jun 1 +- 0:09:21 - PMT 1911 Mar 29 # Paris Mean Time +- 0:00 France WE%sT 1945 Sep 16 3:00 +- 1:00 France CE%sT 1977 +- 1:00 EU CE%sT ++# See Europe/Paris. + + # Montenegro + # See Europe/Belgrade. + + # Netherlands +- +-# Howse writes that the Netherlands' railways used GMT between 1892 and 1940, +-# but for other purposes the Netherlands used Amsterdam mean time. +- +-# However, Robert H. van Gent writes (2001-04-01): +-# Howse's statement is only correct up to 1909. From 1909-05-01 (00:00:00 +-# Amsterdam mean time) onwards, the whole of the Netherlands (including +-# the Dutch railways) was required by law to observe Amsterdam mean time +-# (19 minutes 32.13 seconds ahead of GMT). This had already been the +-# common practice (except for the railways) for many decades but it was +-# not until 1909 when the Dutch government finally defined this by law. +-# On 1937-07-01 this was changed to 20 minutes (exactly) ahead of GMT and +-# was generally known as Dutch Time ("Nederlandse Tijd"). +-# +-# (2001-04-08): +-# 1892-05-01 was the date when the Dutch railways were by law required to +-# observe GMT while the remainder of the Netherlands adhered to the common +-# practice of following Amsterdam mean time. +-# +-# (2001-04-09): +-# In 1835 the authorities of the province of North Holland requested the +-# municipal authorities of the towns and cities in the province to observe +-# Amsterdam mean time but I do not know in how many cases this request was +-# actually followed. +-# +-# From 1852 onwards the Dutch telegraph offices were by law required to +-# observe Amsterdam mean time. As the time signals from the observatory of +-# Leiden were also distributed by the telegraph system, I assume that most +-# places linked up with the telegraph (and railway) system automatically +-# adopted Amsterdam mean time. +-# +-# Although the early Dutch railway companies initially observed a variety +-# of times, most of them had adopted Amsterdam mean time by 1858 but it +-# was not until 1866 when they were all required by law to observe +-# Amsterdam mean time. +- +-# 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 +-Rule Neth 1917 only - Apr 16 2:00s 1:00 NST +-Rule Neth 1917 only - Sep 17 2:00s 0 AMT +-Rule Neth 1918 1921 - Apr Mon>=1 2:00s 1:00 NST +-Rule Neth 1918 1921 - Sep lastMon 2:00s 0 AMT +-Rule Neth 1922 only - Mar lastSun 2:00s 1:00 NST +-Rule Neth 1922 1936 - Oct Sun>=2 2:00s 0 AMT +-Rule Neth 1923 only - Jun Fri>=1 2:00s 1:00 NST +-Rule Neth 1924 only - Mar lastSun 2:00s 1:00 NST +-Rule Neth 1925 only - Jun Fri>=1 2:00s 1:00 NST +-# From 1926 through 1939 DST began 05-15, except that it was delayed by a week +-# in years when 05-15 fell in the Pentecost weekend. +-Rule Neth 1926 1931 - May 15 2:00s 1:00 NST +-Rule Neth 1932 only - May 22 2:00s 1:00 NST +-Rule Neth 1933 1936 - May 15 2:00s 1:00 NST +-Rule Neth 1937 only - May 22 2:00s 1:00 NST +-Rule Neth 1937 only - Jul 1 0:00 1:00 S +-Rule Neth 1937 1939 - Oct Sun>=2 2:00s 0 - +-Rule Neth 1938 1939 - May 15 2:00s 1:00 S +-Rule Neth 1945 only - Apr 2 2:00s 1:00 S +-Rule Neth 1945 only - Sep 16 2:00s 0 - +-# +-# Amsterdam Mean Time was +00:19:32.13, but the .13 is omitted +-# below because the current format requires STDOFF to be an integer. +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Amsterdam 0:19:32 - LMT 1835 +- 0:19:32 Neth %s 1937 Jul 1 +- 0:20 Neth +0020/+0120 1940 May 16 0:00 +- 1:00 C-Eur CE%sT 1945 Apr 2 2:00 +- 1:00 Neth CE%sT 1977 +- 1:00 EU CE%sT ++# See Europe/Brussels. + + # Norway +-# http://met.no/met/met_lex/q_u/sommertid.html (2004-01) agrees with Shanks & +-# Pottenger. +-# Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Norway 1916 only - May 22 1:00 1:00 S +-Rule Norway 1916 only - Sep 30 0:00 0 - +-Rule Norway 1945 only - Apr 2 2:00s 1:00 S +-Rule Norway 1945 only - Oct 1 2:00s 0 - +-Rule Norway 1959 1964 - Mar Sun>=15 2:00s 1:00 S +-Rule Norway 1959 1965 - Sep Sun>=15 2:00s 0 - +-Rule Norway 1965 only - Apr 25 2:00s 1:00 S +-# Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 +- 1:00 Norway CE%sT 1940 Aug 10 23:00 +- 1:00 C-Eur CE%sT 1945 Apr 2 2:00 +- 1:00 Norway CE%sT 1980 +- 1:00 EU CE%sT ++# See Europe/Berlin. + + # Svalbard & Jan Mayen + +@@ -2257,9 +1993,9 @@ + # the German armed forces at the Svalbard weather station code-named + # Haudegen did not surrender to the Allies until September 1945. + # +-# All these events predate our cutoff date of 1970, so use Europe/Oslo ++# All these events predate our cutoff date of 1970, so use Europe/Berlin + # for these regions. +-Link Europe/Oslo Arctic/Longyearbyen ++ + + # Poland + +@@ -2313,7 +2049,6 @@ + # According to a Portuguese decree (1911-05-26) + # https://dre.pt/application/dir/pdf1sdip/1911/05/12500/23132313.pdf + # Lisbon was at -0:36:44.68, but switched to GMT on 1912-01-01 at 00:00. +-# Round the old offset to -0:36:45. This agrees with Willett.... + # + # From Michael Deckers (2018-02-15): + # article 5 [of the 1911 decree; Deckers's translation] ...: +@@ -2400,6 +2135,7 @@ + Rule Port 1983 only - Mar lastSun 2:00s 1:00 S + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF -0:36:44.68 + Zone Europe/Lisbon -0:36:45 - LMT 1884 + -0:36:45 - LMT 1912 Jan 1 0:00u # Lisbon MT + 0:00 Port WE%sT 1966 Apr 3 2:00 +@@ -2408,9 +2144,13 @@ + 0:00 W-Eur WE%sT 1992 Sep 27 1:00s + 1:00 EU CE%sT 1996 Mar 31 1:00u + 0:00 EU WE%sT +-# This Zone can be simplified once we assume zic %z. + Zone Atlantic/Azores -1:42:40 - LMT 1884 # Ponta Delgada + -1:54:32 - HMT 1912 Jan 1 2:00u # Horta MT ++# Vanguard section, for zic and other parsers that support %z. ++# -2:00 Port %z 1966 Apr 3 2:00 ++# -1:00 Port %z 1983 Sep 25 1:00s ++# -1:00 W-Eur %z 1992 Sep 27 1:00s ++# Rearguard section, for parsers lacking %z; see ziguard.awk. + -2:00 Port -02/-01 1942 Apr 25 22:00s + -2:00 Port +00 1942 Aug 15 22:00s + -2:00 Port -02/-01 1943 Apr 17 22:00s +@@ -2422,11 +2162,14 @@ + -2:00 Port -02/-01 1966 Apr 3 2:00 + -1:00 Port -01/+00 1983 Sep 25 1:00s + -1:00 W-Eur -01/+00 1992 Sep 27 1:00s ++# End of rearguard section. + 0:00 EU WE%sT 1993 Mar 28 1:00u + -1:00 EU -01/+00 +-# This Zone can be simplified once we assume zic %z. + Zone Atlantic/Madeira -1:07:36 - LMT 1884 # Funchal + -1:07:36 - FMT 1912 Jan 1 1:00u # Funchal MT ++# Vanguard section, for zic and other parsers that support %z. ++# -1:00 Port %z 1966 Apr 3 2:00 ++# Rearguard section, for parsers lacking %z; see ziguard.awk. + -1:00 Port -01/+00 1942 Apr 25 22:00s + -1:00 Port +01 1942 Aug 15 22:00s + -1:00 Port -01/+00 1943 Apr 17 22:00s +@@ -2436,6 +2179,7 @@ + -1:00 Port -01/+00 1945 Apr 21 22:00s + -1:00 Port +01 1945 Aug 25 22:00s + -1:00 Port -01/+00 1966 Apr 3 2:00 ++# End of rearguard section. + 0:00 Port WE%sT 1983 Sep 25 1:00s + 0:00 EU WE%sT + +@@ -2854,20 +2598,19 @@ + 2:00 - EET 1992 Mar 20 + # Central Crimea used Moscow time 1994/1997. + # +-# From Paul Eggert (2006-03-22): +-# The _Economist_ (1994-05-28, p 45) reports that central Crimea switched +-# from Kiev to Moscow time sometime after the January 1994 elections. ++# From Paul Eggert (2022-07-21): ++# The _Economist_ (1994-05-28, p 45) reported that central Crimea switched ++# from Kyiv to Moscow time sometime after the January 1994 elections. + # Shanks (1999) says "date of change uncertain", but implies that it happened + # sometime between the 1994 DST switches. Shanks & Pottenger simply say + # 1994-09-25 03:00, but that can't be right. For now, guess it +-# changed in May. ++# changed in May. This change evidently didn't last long; see below. + 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 ++# From IATA SSIM (1994/1997), which also said that Kerch is still like Kyiv. ++ 3:00 C-Eur MSK/MSD 1996 Mar 31 0:00s + 3:00 1:00 MSD 1996 Oct 27 3:00s +-# IATA SSIM (1997-09) says Crimea switched to EET/EEST. ++# IATA SSIM (1997-09) said Crimea switched to EET/EEST. + # Assume it happened in March by not changing the clocks. +- 3:00 Russia MSK/MSD 1997 + 3:00 - MSK 1997 Mar lastSun 1:00u + # From Alexander Krivenyshev (2014-03-17): + # time change at 2:00 (2am) on March 30, 2014 +@@ -3036,11 +2779,12 @@ + # Note: Effective 2005-12-01, (59) Perm Oblast and (81) Komi-Permyak + # Autonomous Okrug merged to form (90, RU-PER) Perm Krai. + +-# Milne says Yekaterinburg was 4:02:32.9; round to nearest. ++# Milne says Yekaterinburg was 4:02:32.9. + # Byalokoz 1919 says its provincial time was based on Perm, at 3:45:05. + # Assume it switched on 1916-07-03, the time of the new standard. + # The 1919 and 1930 transitions are from Shanks. + ++ #STDOFF 4:02:32.9 + Zone Asia/Yekaterinburg 4:02:33 - LMT 1916 Jul 3 + 3:45:05 - PMT 1919 Jul 15 4:00 + 4:00 - +04 1930 Jun 21 +@@ -3352,8 +3096,8 @@ + # 14-28 **** Tomponsky District + # 14-30 **** Ust-Maysky District + +-# From Arthur David Olson (2012-05-09): +-# Tomponskij and Ust'-Majskij switched from Vladivostok time to Yakutsk time ++# From Arthur David Olson (2022-03-21): ++# Tomponsky and Ust-Maysky switched from Vladivostok time to Yakutsk time + # in 2011. + + # From Paul Eggert (2012-11-25): +@@ -3478,8 +3222,8 @@ + # Asia/Ust-Nera covers parts of (14, RU-SA) Sakha (Yakutia) Republic: + # 14-22 **** Oymyakonsky District + +-# From Arthur David Olson (2012-05-09): +-# Ojmyakonskij [and the Kuril Islands] switched from ++# From Arthur David Olson (2022-03-21): ++# Oymyakonsky and the Kuril Islands switched from + # Magadan time to Vladivostok time in 2011. + # + # From Tim Parenti (2014-07-06), per Alexander Krivenyshev (2014-07-02): +@@ -3553,7 +3297,7 @@ + Link Europe/Belgrade Europe/Zagreb # Croatia + + # Slovakia +-Link Europe/Prague Europe/Bratislava ++# See Europe/Prague. + + # Slovenia + # See Europe/Belgrade. +@@ -3642,7 +3386,7 @@ + Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S + Rule SpainAfrica 1978 only - Aug 4 0:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone Europe/Madrid -0:14:44 - LMT 1900 Dec 31 23:45:16 ++Zone Europe/Madrid -0:14:44 - LMT 1901 Jan 1 0:00u + 0:00 Spain WE%sT 1940 Mar 16 23:00 + 1:00 Spain CE%sT 1979 + 1:00 EU CE%sT +@@ -3664,61 +3408,7 @@ + # Ignore this for now, as the Canaries are part of the EU. + + # Sweden +- +-# From Ivan Nilsson (2001-04-13), superseding Shanks & Pottenger: +-# +-# The law "Svensk författningssamling 1878, no 14" about standard time in 1879: +-# From the beginning of 1879 (that is 01-01 00:00) the time for all +-# places in the country is "the mean solar time for the meridian at +-# three degrees, or twelve minutes of time, to the west of the +-# meridian of the Observatory of Stockholm". The law is dated 1878-05-31. +-# +-# The observatory at that time had the meridian 18° 03' 30" +-# eastern longitude = 01:12:14 in time. Less 12 minutes gives the +-# national standard time as 01:00:14 ahead of GMT.... +-# +-# About the beginning of CET in Sweden. The lawtext ("Svensk +-# författningssamling 1899, no 44") states, that "from the beginning +-# of 1900... ... the same as the mean solar time for the meridian at +-# the distance of one hour of time from the meridian of the English +-# observatory at Greenwich, or at 12 minutes 14 seconds to the west +-# from the meridian of the Observatory of Stockholm". The law is dated +-# 1899-06-16. In short: At 1900-01-01 00:00:00 the new standard time +-# in Sweden is 01:00:00 ahead of GMT. +-# +-# 1916: The lawtext ("Svensk författningssamling 1916, no 124") states +-# that "1916-05-15 is considered to begin one hour earlier". It is +-# pretty obvious that at 05-14 23:00 the clocks are set to 05-15 00:00.... +-# Further the law says, that "1916-09-30 is considered to end one hour later". +-# +-# The laws regulating [DST] are available on the site of the Swedish +-# Parliament beginning with 1985 - the laws regulating 1980/1984 are +-# not available on the site (to my knowledge they are only available +-# in Swedish): <http://www.riksdagen.se/english/work/sfst.asp> (type +-# "sommartid" without the quotes in the field "Fritext" and then click +-# the Sök-button). +-# +-# (2001-05-13): +-# +-# I have now found a newspaper stating that at 1916-10-01 01:00 +-# summertime the church-clocks etc were set back one hour to show +-# 1916-10-01 00:00 standard time. The article also reports that some +-# people thought the switch to standard time would take place already +-# at 1916-10-01 00:00 summer time, but they had to wait for another +-# hour before the event took place. +-# +-# 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 +- 1:00 - CET 1916 May 14 23:00 +- 1:00 1:00 CEST 1916 Oct 1 1:00 +- 1:00 - CET 1980 +- 1:00 EU CE%sT ++# See Europe/Berlin. + + # Switzerland + # From Howse: +@@ -3812,6 +3502,19 @@ + # 1853-07-16, though it probably occurred at some other date in Zurich, and + # legal civil time probably changed at still some other transition date. + ++# From Tobias Conradi (2011-09-12): ++# Büsingen <http://www.buesingen.de>, surrounded by the Swiss canton ++# Schaffhausen, did not start observing DST in 1980 as the rest of DE ++# (West Germany at that time) and DD (East Germany at that time) did. ++# DD merged into DE, the area is currently covered by code DE in ISO 3166-1, ++# which in turn is covered by the zone Europe/Berlin. ++# ++# Source for the time in Büsingen 1980: ++# http://www.srf.ch/player/video?id=c012c029-03b7-4c2b-9164-aa5902cd58d3 ++# ++# From Arthur David Olson (2012-03-03): ++# Büsingen and Zurich have shared clocks since 1970. ++ + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S + Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S + Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 - +@@ -3820,6 +3523,9 @@ + 0:29:46 - BMT 1894 Jun # Bern Mean Time + 1:00 Swiss CE%sT 1981 + 1:00 EU CE%sT ++Link Europe/Zurich Europe/Busingen ++Link Europe/Zurich Europe/Vaduz ++ + + # Turkey + +@@ -4028,7 +3734,7 @@ + + # Ukraine + # +-# From Alois Triendl (2014-03-01): ++# From Alois Treindl (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.... +@@ -4088,7 +3794,7 @@ + # The law documents themselves are at + # http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 + +-# From Vladimir in Moscow via Alois Treindl re Kiev time 1991/2 (2014-02-28): ++# From Vladimir in Moscow via Alois Treindl re Kyiv time 1991/2 (2014-02-28): + # First in Ukraine they changed Time zone from UTC+3 to UTC+2 with DST: + # 03 25 1990 02:00 -03.00 1 Time Zone 3 with DST + # 07 01 1990 02:00 -02.00 1 Time Zone 2 with DST +@@ -4116,23 +3822,23 @@ + # * Ukrainian Government's Resolution of 20.03.1992, No. 139. + # http://www.uazakon.com/documents/date_8u/pg_grcasa.htm + +-# From Paul Eggert (2018-10-03): ++# From Paul Eggert (2022-04-12): + # As is usual in tzdb, Ukrainian zones use the most common English spellings. +-# For example, tzdb uses Europe/Kiev, as "Kiev" is the most common spelling in +-# English for Ukraine's capital, even though it is certainly wrong as a +-# transliteration of the Ukrainian "Київ". This is similar to tzdb's use of +-# Europe/Prague, which is certainly wrong as a transliteration of the Czech +-# "Praha". ("Kiev" came from old Slavic via Russian to English, and "Prague" +-# came from old Slavic via French to English, so the two cases have something +-# in common.) Admittedly English-language spelling of Ukrainian names is +-# controversial, and some day "Kyiv" may become substantially more popular in +-# English; in the meantime, stick with the traditional English "Kiev" as that +-# means less disruption for our users. ++# In particular, tzdb's name Europe/Kyiv uses the most common spelling in ++# English for Ukraine's capital. Although tzdb's former name was Europe/Kiev, ++# "Kyiv" is now more common due to widespread reporting of the current conflict. ++# Conversely, tzdb continues to use the names Europe/Uzhgorod and ++# Europe/Zaporozhye; this is similar to tzdb's use of Europe/Prague, which is ++# certainly wrong as a transliteration of the Czech "Praha". ++# English-language spelling of Ukrainian names is in flux, and ++# some day "Uzhhorod" or "Zaporizhzhia" may become substantially more ++# common in English; in the meantime, do not change these ++# English spellings as that means less disruption for our users. + + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-# This represents most of Ukraine. See above for the spelling of "Kiev". +-Zone Europe/Kiev 2:02:04 - LMT 1880 +- 2:02:04 - KMT 1924 May 2 # Kiev Mean Time ++# This represents most of Ukraine. See above for the spelling of "Kyiv". ++Zone Europe/Kyiv 2:02:04 - LMT 1880 ++ 2:02:04 - KMT 1924 May 2 # Kyiv Mean Time + 2:00 - EET 1930 Jun 21 + 3:00 - MSK 1941 Sep 20 + 1:00 C-Eur CE%sT 1943 Nov 6 +@@ -4155,7 +3861,7 @@ + 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 ++# "Zaporizhzhia" is the transliteration of the Ukrainian name, but + # "Zaporozh'ye" is more common in English. Use the common English + # spelling, except omit the apostrophe as it is not allowed in + # portable Posix file names. +--- contrib/tzdata/leap-seconds.list.orig ++++ contrib/tzdata/leap-seconds.list +@@ -204,10 +204,10 @@ + # current -- the update time stamp, the data and the name of the file + # will not change. + # +-# Updated through IERS Bulletin C63 +-# File expires on: 28 December 2022 ++# Updated through IERS Bulletin C64 ++# File expires on: 28 June 2023 + # +-#@ 3881174400 ++#@ 3896899200 + # + 2272060800 10 # 1 Jan 1972 + 2287785600 11 # 1 Jul 1972 +@@ -252,4 +252,4 @@ + # the hash line is also ignored in the + # computation. + # +-#h 732b2044 5863a938 b7e43179 1339c710 ded63837 ++#h 2c413af9 124e1031 f165174 ff527c6b 756ae00b +--- contrib/tzdata/leapseconds.orig ++++ contrib/tzdata/leapseconds +@@ -72,11 +72,11 @@ + # 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 2022 Dec 28 00:00:00 ++#Expires 2023 Jun 28 00:00:00 + + # POSIX timestamps for the data in this file: + #updated 1467936000 (2016-07-08 00:00:00 UTC) +-#expires 1672185600 (2022-12-28 00:00:00 UTC) ++#expires 1687910400 (2023-06-28 00:00:00 UTC) + +-# Updated through IERS Bulletin C63 +-# File expires on: 28 December 2022 ++# Updated through IERS Bulletin C64 ++# File expires on: 28 June 2023 +--- contrib/tzdata/northamerica.orig ++++ contrib/tzdata/northamerica +@@ -344,8 +344,7 @@ + # From Paul Eggert (2014-09-06): + # Monthly Notices of the Royal Astronomical Society 44, 4 (1884-02-08), 208 + # says that New York City Hall time was 3 minutes 58.4 seconds fast of +-# Eastern time (i.e., -4:56:01.6) just before the 1883 switch. Round to the +-# nearest second. ++# Eastern time (i.e., -4:56:01.6) just before the 1883 switch. + + # Rule NAME FROM TO - IN ON AT SAVE LETTER + Rule NYC 1920 only - Mar lastSun 2:00 1:00 D +@@ -354,7 +353,8 @@ + Rule NYC 1921 1954 - Sep lastSun 2:00 0 S + Rule NYC 1955 1966 - Oct lastSun 2:00 0 S + # Zone NAME STDOFF RULES FORMAT [UNTIL] +-Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58 ++ #STDOFF -4:56:01.6 ++Zone America/New_York -4:56:02 - LMT 1883 Nov 18 17:00u + -5:00 US E%sT 1920 + -5:00 NYC E%sT 1942 + -5:00 US E%sT 1946 +@@ -2818,7 +2818,7 @@ + + # Barbados + +-# For 1899 Milne gives -3:58:29.2; round that. ++# For 1899 Milne gives -3:58:29.2. + + # From P Chan (2020-12-09 and 2020-12-11): + # Standard time of GMT-4 was adopted in 1911. +@@ -2862,6 +2862,7 @@ + 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] ++ #STDOFF -3:58:29.2 + Zone America/Barbados -3:58:29 - LMT 1911 Aug 28 # Bridgetown + -4:00 Barb A%sT 1944 + -4:00 Barb AST/-0330 1945 +@@ -2922,10 +2923,10 @@ + + # Bermuda + +-# From Paul Eggert (2020-11-24): ++# From Paul Eggert (2022-07-27): + # For 1899 Milne gives -4:19:18.3 as the meridian of the clock tower, + # Bermuda dockyard, Ireland I. This agrees with standard offset given in the +-# Daylight Saving Act, 1917 cited below. Round that to the nearest second. ++# Daylight Saving Act, 1917 cited below. + # It is not known when this time became standard for Bermuda; guess 1890. + # The transition to -04 was specified by: + # 1930: The Time Zone Act, 1929 (1929: No. 39) [1929-11-08] +@@ -3020,6 +3021,7 @@ + Rule Bermuda 1956 only - Oct lastSun 2:00 0 S + + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF -4:19:18.3 + Zone Atlantic/Bermuda -4:19:18 - LMT 1890 # Hamilton + -4:19:18 Bermuda BMT/BST 1930 Jan 1 2:00 + -4:00 Bermuda A%sT 1974 Apr 28 2:00 +@@ -3034,7 +3036,7 @@ + + # Costa Rica + +-# Milne gives -5:36:13.3 as San José mean time; round to nearest. ++# Milne gives -5:36:13.3 as San José mean time. + + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S + Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D +@@ -3046,6 +3048,7 @@ + Rule CR 1992 only - Mar 15 0:00 0 S + # There are too many San Josés elsewhere, so we'll use 'Costa Rica'. + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF -5:36:13.3 + Zone America/Costa_Rica -5:36:13 - LMT 1890 # San José + -5:36:13 - SJMT 1921 Jan 15 # San José Mean Time + -6:00 CR C%sT +@@ -3468,7 +3471,7 @@ + # Jamaica + # Shanks & Pottenger give -5:07:12, but Milne records -5:07:10.41 from an + # unspecified official document, and says "This time is used throughout the +-# island". Go with Milne. Round to the nearest second as required by zic. ++# island". Go with Milne. + # + # Shanks & Pottenger give April 28 for the 1974 spring-forward transition, but + # Lance Neita writes that Prime Minister Michael Manley decreed it January 5. +@@ -3481,6 +3484,7 @@ + # http://www.jamaicaobserver.com/columns/The-politician-in-all-of-us_17573647 + # + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF -5:07:10.41 + Zone America/Jamaica -5:07:10 - LMT 1890 # Kingston + -5:07:10 - KMT 1912 Feb # Kingston Mean Time + -5:00 - EST 1974 +@@ -3678,6 +3682,7 @@ + + # Zone NAME STDOFF RULES FORMAT [UNTIL] + Zone America/Grand_Turk -4:44:32 - LMT 1890 ++ #STDOFF -5:07:10.41 + -5:07:10 - KMT 1912 Feb # Kingston Mean Time + -5:00 - EST 1979 + -5:00 US E%sT 2015 Mar 8 2:00 +--- contrib/tzdata/southamerica.orig ++++ contrib/tzdata/southamerica +@@ -400,6 +400,7 @@ + # + # Buenos Aires (BA), Capital Federal (CF), + Zone America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May # Córdoba Mean Time + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -417,6 +418,7 @@ + # - Santiago del Estero switched to -4:00 on 1991-04-01, + # then to -3:00 on 1991-04-26. + # ++ #STDOFF -4:16:48.25 + Zone America/Argentina/Cordoba -4:16:48 - LMT 1894 Oct 31 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec +@@ -429,6 +431,7 @@ + # + # Salta (SA), La Pampa (LP), Neuquén (NQ), Rio Negro (RN) + Zone America/Argentina/Salta -4:21:40 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -441,6 +444,7 @@ + # + # Tucumán (TM) + Zone America/Argentina/Tucuman -4:20:52 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -454,6 +458,7 @@ + # + # La Rioja (LR) + Zone America/Argentina/La_Rioja -4:27:24 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -468,6 +473,7 @@ + # + # San Juan (SJ) + Zone America/Argentina/San_Juan -4:34:04 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -482,6 +488,7 @@ + # + # Jujuy (JY) + Zone America/Argentina/Jujuy -4:21:12 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -497,6 +504,7 @@ + # + # Catamarca (CT), Chubut (CH) + Zone America/Argentina/Catamarca -4:23:08 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -511,6 +519,7 @@ + # + # Mendoza (MZ) + Zone America/Argentina/Mendoza -4:35:16 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -533,6 +542,7 @@ + Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 - + + Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -551,6 +561,7 @@ + # + # Santa Cruz (SC) + Zone America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -563,6 +574,7 @@ + # + # Tierra del Fuego, Antártida e Islas del Atlántico Sur (TF) + Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31 ++ #STDOFF -4:16:48.25 + -4:16:48 - CMT 1920 May + -4:00 - -04 1930 Dec + -4:00 Arg -04/-03 1969 Oct 5 +@@ -645,7 +657,7 @@ + + # From Rodrigo Severo (2004-10-04): + # It's just the biannual change made necessary by the much hyped, supposedly +-# modern Brazilian eletronic voting machines which, apparently, can't deal ++# modern Brazilian ... voting machines which, apparently, can't deal + # with a time change between the first and the second rounds of the elections. + + # From Steffen Thorsen (2007-09-20): +@@ -1141,7 +1153,7 @@ + # 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): ++# From Tim Parenti (2022-07-06): + # 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". +@@ -1159,7 +1171,14 @@ + # 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". ++# seconds". Although this law specified the new Summer Time to start on 1 ++# September each year, a special "transitional article" started it a few days ++# early, as soon as the law took effect. As the law was to take force "from ++# the date of its publication in the 'Diario Oficial', which happened the ++# following day, presume the change took place in Santiago and its environs ++# from 24:00 -03 to 23:00 -04 on Wednesday 1946-08-28. Although this was a ++# no-op for wall clocks in the north and south of the country, put their formal ++# start to DST an hour later when they reached 24:00 -04. + # 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 +@@ -1279,11 +1298,19 @@ + # So we extend the new rules on Saturdays at 24:00 mainland time indefinitely. + # From Juan Correa (2019-02-04): + # http://www.diariooficial.interior.gob.cl/publicaciones/2018/11/23/42212/01/1498738.pdf +-# From Paul Eggert (2019-09-01): +-# The above says the Magallanes exception expires 2022-04-02 at 24:00, +-# so in theory, they will revert to -04/-03 after that. +-# For now, assume that they will not revert, +-# since they have extended the expiration date once already. ++ ++# From Juan Correa (2022-04-02): ++# I found there was a decree published last Thursday that will keep ++# Magallanes region to UTC -3 "indefinitely". The decree is available at ++# https://www.diariooficial.interior.gob.cl/publicaciones/2022/03/31/43217-B/01/2108910.pdf ++ ++# From Juan Correa (2022-08-09): ++# the Internal Affairs Ministry (Ministerio del Interior) informed DST ++# for America/Santiago will start on midnight of September 11th; ++# and will end on April 1st, 2023. Magallanes region (America/Punta_Arenas) ++# will keep UTC -3 "indefinitely"... This is because on September 4th ++# we will have a voting whether to approve a new Constitution.... ++# https://www.interior.gob.cl/noticias/2022/08/09/comunicado-el-proximo-sabado-10-de-septiembre-los-relojes-se-deben-adelantar-una-hora/ + + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S + Rule Chile 1927 1931 - Sep 1 0:00 1:00 - +@@ -1321,7 +1348,9 @@ + Rule Chile 2016 2018 - May Sun>=9 3:00u 0 - + Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 - + Rule Chile 2019 max - Apr Sun>=2 3:00u 0 - +-Rule Chile 2019 max - Sep Sun>=2 4:00u 1:00 - ++Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 - ++Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 - ++Rule Chile 2023 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] +@@ -1334,9 +1363,9 @@ + -5:00 Chile -05/-04 1932 Sep 1 + -4:00 - -04 1942 Jun 1 + -5:00 - -05 1942 Aug 1 +- -4:00 - -04 1946 Jul 15 +- -4:00 1:00 -03 1946 Sep 1 # central Chile +- -4:00 - -04 1947 Apr 1 ++ -4:00 - -04 1946 Jul 14 24:00 ++ -4:00 1:00 -03 1946 Aug 28 24:00 # central CL ++ -5:00 1:00 -04 1947 Mar 31 24:00 + -5:00 - -05 1947 May 21 23:00 + -4:00 Chile -04/-03 + Zone America/Punta_Arenas -4:43:40 - LMT 1890 +@@ -1348,7 +1377,8 @@ + -5:00 Chile -05/-04 1932 Sep 1 + -4:00 - -04 1942 Jun 1 + -5:00 - -05 1942 Aug 1 +- -4:00 - -04 1947 Apr 1 ++ -4:00 - -04 1946 Aug 28 24:00 ++ -5:00 1:00 -04 1947 Mar 31 24:00 + -5:00 - -05 1947 May 21 23:00 + -4:00 Chile -04/-03 2016 Dec 4 + -3:00 - -03 +@@ -1382,13 +1412,14 @@ + + # Colombia + +-# Milne gives 4:56:16.4 for Bogotá time in 1899; round to nearest. He writes, ++# Milne gives 4:56:16.4 for Bogotá time in 1899. He writes, + # "A variation of fifteen minutes in the public clocks of Bogota is not rare." + + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S + Rule CO 1992 only - May 3 0:00 1:00 - + Rule CO 1993 only - Apr 4 0:00 0 - + # Zone NAME STDOFF RULES FORMAT [UNTIL] ++ #STDOFF -4:56:16.4 + Zone America/Bogota -4:56:16 - LMT 1884 Mar 13 + -4:56:16 - BMT 1914 Nov 23 # Bogotá Mean Time + -5:00 CO -05/-04 +--- contrib/tzdata/theory.html.orig ++++ contrib/tzdata/theory.html +@@ -122,7 +122,7 @@ + locate the user on a timezone map or prioritize names that are + geographically close. For an example selection interface, see the + <code>tzselect</code> program in the <code><abbr>tz</abbr></code> code. +-The <a href="http://cldr.unicode.org">Unicode Common Locale Data ++The <a href="https://cldr.unicode.org">Unicode Common Locale Data + Repository</a> contains data that may be useful for other selection + interfaces; it maps timezone names like <code>Europe/Prague</code> to + locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格". +@@ -376,9 +376,11 @@ + 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>, ++One of <code>etcetera</code>'s names is <code>Etc/UTC</code>, + used by functions like <code>gmtime</code> to obtain leap + second information on platforms that support leap seconds. ++Another <code>etcetera</code> name, <code>GMT</code>, ++is used by older code releases. + </p> + </section> + +@@ -468,6 +470,7 @@ + PST/PDT Philippine, + SAST South Africa, + SST Samoa, ++ UTC Universal, + WAT/WAST West Africa, + WET/WEST/WEMT Western European, + WIB Waktu Indonesia Barat, +@@ -502,7 +505,7 @@ + HMT Havana, Helsinki, Horta, Howrah; + IMT Irkutsk, Istanbul; + JMT Jerusalem; +- KMT Kaunas, Kiev, Kingston; ++ KMT Kaunas, Kyiv, Kingston; + LMT Lima, Lisbon, local, Luanda; + MMT Macassar, Madras, Malé, Managua, Minsk, Monrovia, Montevideo, + Moratuwa, Moscow; +@@ -568,7 +571,7 @@ + locations while uninhabited. + The leading '<code>-</code>' is a flag that the <abbr>UT</abbr> offset is in + some sense undefined; this notation is derived +- from <a href="https://tools.ietf.org/html/rfc3339">Internet ++ from <a href="https://datatracker.ietf.org/doc/html/rfc3339">Internet + <abbr title="Request For Comments">RFC</abbr> 3339</a>. + </li> + </ul> +@@ -621,7 +624,7 @@ + should be observed. + In her 2015 book + <cite><a +- href="http://www.hup.harvard.edu/catalog.php?isbn=9780674286146">The ++ href="https://www.hup.harvard.edu/catalog.php?isbn=9780674286146">The + Global Transformation of Time, 1870–1950</a></cite>, + Vanessa Ogle writes + "Outside of Europe and North America there was no system of time +@@ -720,8 +723,8 @@ + than what the <code><abbr>tz</abbr></code> code can handle. + For example, from 1880 to 1916 clocks in Ireland observed Dublin Mean + Time (estimated to be <abbr>UT</abbr> +- −00:25:21.1), but the <code><abbr>tz</abbr></code> +- code cannot represent the fractional second. ++ −00:25:21.1); although the <code><abbr>tz</abbr></code> ++ source data can represent the .1 second, TZif files and the code cannot. + In practice these old specifications were rarely if ever + implemented to subsecond precision. + </li> +@@ -807,7 +810,7 @@ + See: Stephenson FR, Morrison LV, Hohenkerk CY. + <a href="https://dx.doi.org/10.1098/rspa.2016.0404">Measurement of + the Earth's rotation: 720 BC to AD 2015</a>. +- <cite>Proc Royal Soc A</cite>. 2016 Dec 7;472:20160404. ++ <cite>Proc Royal Soc A</cite>. 2016;472:20160404. + Also see: Espenak F. <a + href="https://eclipse.gsfc.nasa.gov/SEhelp/uncertainty2004.html">Uncertainty + in Delta T (ΔT)</a>. +@@ -1033,7 +1036,7 @@ + and numeric data as described <a href="#POSIX">above</a>. + The file's format is <dfn><abbr>TZif</abbr></dfn>, + a timezone information format that contains binary data; see +- <a href="https://tools.ietf.org/html/8536">Internet ++ <a href="https://datatracker.ietf.org/doc/html/8536">Internet + <abbr>RFC</abbr> 8536</a>. + The daylight saving time rules to be used for a + particular timezone are encoded in the +@@ -1061,11 +1064,12 @@ + </li> + <li> + The code supports platforms with a <abbr>UT</abbr> offset member +- in <code>struct tm</code>, e.g., <code>tm_gmtoff</code>. +- </li> +- <li> +- The code supports platforms with a time zone abbreviation member in +- <code>struct tm</code>, e.g., <code>tm_zone</code>. ++ in <code>struct tm</code>, e.g., <code>tm_gmtoff</code>, ++ or with a time zone abbreviation member in ++ <code>struct tm</code>, e.g., <code>tm_zone</code>. As noted ++ in <a href="https://austingroupbugs.net/view.php?id=1533">Austin ++ Group defect 1533</a>, a future version of POSIX is planned to ++ require <code>tm_gmtoff</code> and <code>tm_zone</code>. + </li> + <li> + Functions <code>tzalloc</code>, <code>tzfree</code>, +@@ -1126,7 +1130,8 @@ + <abbr>API</abbr>s. + Although it can still be used in arguments to + <code>mktime</code> to disambiguate timestamps near +- a <abbr>DST</abbr> transition when the clock jumps back, this ++ a <abbr>DST</abbr> transition when the clock jumps back on ++ platforms lacking <code>tm_gmtoff</code>, this + disambiguation does not work when standard time itself jumps back, + which can occur when a location changes to a time zone with a + lesser <abbr>UT</abbr> offset. +@@ -1274,7 +1279,7 @@ + <a href="tz-link.html#precision">Precision timekeeping</a>, + and this package by default installs a <samp>leapseconds</samp> file + commonly used by +-<a href="http://www.ntp.org"><abbr title="Network Time Protocol">NTP</abbr></a> ++<a href="https://www.ntp.org"><abbr title="Network Time Protocol">NTP</abbr></a> + software that adjusts the kernel clock. + However, kernel-clock twiddling approximates UTC only roughly, + and systems needing more-precise UTC can use this package's leap +@@ -1295,7 +1300,8 @@ + if no time zone correction is desired, + calls to <code>gmtime</code>-like functions + also need to consult a <abbr>TZif</abbr> file, +-conventionally named <samp><abbr>GMT</abbr></samp>, ++conventionally named <samp><abbr>Etc/UTC</abbr></samp> ++(<samp><abbr>GMT</abbr></samp> in previous versions), + to see whether leap second corrections are needed. + To convert an application's <code>time_t</code> timestamps to or from + POSIX <code>time_t</code> timestamps (for use when, say, +--- contrib/tzdata/version.orig ++++ contrib/tzdata/version +@@ -1 +1 @@ +-2022a ++2022c +--- contrib/tzdata/ziguard.awk.orig ++++ contrib/tzdata/ziguard.awk +@@ -9,7 +9,11 @@ + # it does not do these nonessential tasks now. + # + # Although main and vanguard forms are currently equivalent, +-# this need not always be the case. ++# this need not always be the case. When the two forms differ, ++# this script can convert either from main to vanguard form (needed then), ++# or from vanguard to main form (this conversion would be needed later, ++# after main became rearguard and vanguard became main). ++# There is no need to convert rearguard to other forms. + # + # When converting to vanguard form, the output can use negative SAVE + # values. +@@ -19,26 +23,82 @@ + # of the input data as best it can within the constraints of the + # rearguard format. + ++# Given a FIELD like "-0:30", return a minute count like -30. ++function get_minutes(field, \ ++ sign, hours, minutes) ++{ ++ sign = field ~ /^-/ ? -1 : 1 ++ hours = +field ++ if (field ~ /:/) { ++ minutes = field ++ sub(/[^:]*:/, "", minutes) ++ } ++ return 60 * hours + sign * minutes ++} ++ ++# Given an OFFSET, which is a minute count like 300 or 330, ++# return a %z-style abbreviation like "+05" or "+0530". ++function offset_abbr(offset, \ ++ hours, minutes, sign) ++{ ++ hours = int(offset / 60) ++ minutes = offset % 60 ++ if (minutes) { ++ return sprintf("%+.4d", hours * 100 + minutes); ++ } else { ++ return sprintf("%+.2d", hours) ++ } ++} ++ ++# Round TIMESTAMP (a +-hh:mm:ss.dddd string) to the nearest second. ++function round_to_second(timestamp, \ ++ hh, mm, ss, seconds, dot_dddd, subseconds) ++{ ++ dot_dddd = timestamp ++ if (!sub(/^[+-]?[0-9]+:[0-9]+:[0-9]+\./, ".", dot_dddd)) ++ return timestamp ++ hh = mm = ss = timestamp ++ sub(/^[-+]?[0-9]+:[0-9]+:/, "", ss) ++ sub(/^[-+]?[0-9]+:/, "", mm) ++ sub(/^[-+]?/, "", hh) ++ seconds = 3600 * hh + 60 * mm + ss ++ subseconds = +dot_dddd ++ seconds += 0.5 < subseconds || ((subseconds == 0.5) && (seconds % 2)); ++ return sprintf("%s%d:%.2d:%.2d", timestamp ~ /^-/ ? "-" : "", \ ++ seconds / 3600, seconds / 60 % 60, seconds % 60) ++} ++ + BEGIN { + dataform_type["vanguard"] = 1 + dataform_type["main"] = 1 + dataform_type["rearguard"] = 1 + ++ if (PACKRATLIST) { ++ while (getline <PACKRATLIST) { ++ if ($0 ~ /^#/) continue ++ packratlist[$3] = 1 ++ } ++ } ++ + # The command line should set DATAFORM. + if (!dataform_type[DATAFORM]) exit 1 +- vanguard = DATAFORM == "vanguard" ++} ++ ++$1 == "#PACKRATLIST" && $2 == PACKRATLIST { ++ sub(/^#PACKRATLIST[\t ]+[^\t ]+[\t ]+/, "") + } + + /^Zone/ { zone = $2 } + + DATAFORM != "main" { +- in_comment = /^#/ ++ in_comment = $0 ~ /^#/ + uncomment = comment_out = 0 + + # If this line should differ due to Czechoslovakia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- if (zone == "Europe/Prague" && /^#?[\t ]+[01]:00[\t ]/ && /1947 Feb 23/) { +- if (($(in_comment + 2) != "-") == vanguard) { ++ if (zone == "Europe/Prague" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \ ++ && $0 ~ /1947 Feb 23/) { ++ if (($(in_comment + 2) != "-") == (DATAFORM != "rearguard")) { + uncomment = in_comment + } else { + comment_out = !in_comment +@@ -47,14 +107,14 @@ + + # If this line should differ due to Ireland using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- Rule_Eire = /^#?Rule[\t ]+Eire[\t ]/ ++ Rule_Eire = $0 ~ /^#?Rule[\t ]+Eire[\t ]/ + Zone_Dublin_post_1968 \ +- = (zone == "Europe/Dublin" && /^#?[\t ]+[01]:00[\t ]/ \ ++ = (zone == "Europe/Dublin" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \ + && (!$(in_comment + 4) || 1968 < $(in_comment + 4))) + if (Rule_Eire || Zone_Dublin_post_1968) { + if ((Rule_Eire \ + || (Zone_Dublin_post_1968 && $(in_comment + 3) == "IST/GMT")) \ +- == vanguard) { ++ == (DATAFORM != "rearguard")) { + uncomment = in_comment + } else { + comment_out = !in_comment +@@ -63,19 +123,28 @@ + + # If this line should differ due to Namibia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- Rule_Namibia = /^#?Rule[\t ]+Namibia[\t ]/ ++ Rule_Namibia = $0 ~ /^#?Rule[\t ]+Namibia[\t ]/ + Zone_using_Namibia_rule \ +- = (zone == "Africa/Windhoek" && /^#?[\t ]+[12]:00[\t ]/ \ ++ = (zone == "Africa/Windhoek" && $0 ~ /^#?[\t ]+[12]:00[\t ]/ \ + && ($(in_comment + 2) == "Namibia" \ + || ($(in_comment + 2) == "-" && $(in_comment + 3) == "CAT" \ + && ((1994 <= $(in_comment + 4) && $(in_comment + 4) <= 2017) \ + || in_comment + 3 == NF)))) + if (Rule_Namibia || Zone_using_Namibia_rule) { +- if ((Rule_Namibia \ +- ? ($(in_comment + 9) ~ /^-/ \ +- || ($(in_comment + 9) == 0 && $(in_comment + 10) == "CAT")) \ +- : $(in_comment + 1) == "2:00" && $(in_comment + 2) == "Namibia") \ +- == vanguard) { ++ if ((Rule_Namibia \ ++ ? ($9 ~ /^-/ || ($9 == 0 && $10 == "CAT")) \ ++ : $(in_comment + 1) == "2:00" && $(in_comment + 2) == "Namibia") \ ++ == (DATAFORM != "rearguard")) { ++ uncomment = in_comment ++ } else { ++ comment_out = !in_comment ++ } ++ } ++ ++ # If this line should differ due to Portugal benefiting from %z if supported, ++ # uncomment the desired version and comment out the undesired one. ++ if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) { ++ if (($0 ~ /%z/) == (DATAFORM == "vanguard")) { + uncomment = in_comment + } else { + comment_out = !in_comment +@@ -89,34 +158,142 @@ + sub(/^/, "#") + } + +- # In rearguard format, change the Japan rule line with "Sat>=8 25:00" +- # to "Sun>=9 1:00", to cater to zic before 2007 and to older Java. +- if (!vanguard && $1 == "Rule" && $7 == "Sat>=8" && $8 == "25:00") { +- sub(/Sat>=8/, "Sun>=9") +- sub(/25:00/, " 1:00") ++ # Prefer %z in vanguard form, explicit abbreviations otherwise. ++ if (DATAFORM == "vanguard") { ++ sub(/^(Zone[\t ]+[^\t ]+)?[\t ]+[^\t ]+[\t ]+[^\t ]+[\t ]+[-+][^\t ]+/, \ ++ "&CHANGE-TO-%z") ++ sub(/-00CHANGE-TO-%z/, "-00") ++ sub(/[-+][^\t ]+CHANGE-TO-/, "") ++ } else { ++ if ($0 ~ /^[^#]*%z/) { ++ stdoff_column = 2 * ($0 ~ /^Zone/) + 1 ++ rules_column = stdoff_column + 1 ++ stdoff = get_minutes($stdoff_column) ++ rules = $rules_column ++ stdabbr = offset_abbr(stdoff) ++ if (rules == "-") { ++ abbr = stdabbr ++ } else { ++ dstabbr_only = rules ~ /^[+0-9-]/ ++ if (dstabbr_only) { ++ dstoff = get_minutes(rules) ++ } else { ++ # The DST offset is normally an hour, but there are special cases. ++ if (rules == "Morocco" && NF == 3) { ++ dstoff = -60 ++ } else if (rules == "NBorneo") { ++ dstoff = 20 ++ } else if (((rules == "Cook" || rules == "LH") && NF == 3) \ ++ || (rules == "Uruguay" \ ++ && $0 ~ /[\t ](1942 Dec 14|1960|1970|1974 Dec 22)$/)) { ++ dstoff = 30 ++ } else if (rules == "Uruguay" && $0 ~ /[\t ]1974 Mar 10$/) { ++ dstoff = 90 ++ } else { ++ dstoff = 60 ++ } ++ } ++ dstabbr = offset_abbr(stdoff + dstoff) ++ if (dstabbr_only) { ++ abbr = dstabbr ++ } else { ++ abbr = stdabbr "/" dstabbr ++ } ++ } ++ sub(/%z/, abbr) ++ } + } + +- # In rearguard format, change the Morocco lines with negative SAVE values +- # to use positive SAVE values. +- if (!vanguard && $1 == "Rule" && $2 == "Morocco" && $4 == 2018 \ +- && $6 == "Oct") { +- sub(/\t2018\t/, "\t2017\t") ++ # Normally, prefer whole seconds. However, prefer subseconds ++ # if generating vanguard form and the otherwise-undocumented ++ # VANGUARD_SUBSECONDS environment variable is set. ++ # This relies on #STDOFF comment lines in the data. ++ # It is for hypothetical clients that support UT offsets that are ++ # not integer multiples of one second (e.g., Europe/Lisbon, 1884 to 1912). ++ # No known clients need this currently, and this experimental ++ # feature may be changed or withdrawn in future releases. ++ if ($1 == "#STDOFF") { ++ stdoff = $2 ++ rounded_stdoff = round_to_second(stdoff) ++ if (DATAFORM == "vanguard" && ENVIRON["VANGUARD_SUBSECONDS"]) { ++ stdoff_subst[0] = rounded_stdoff ++ stdoff_subst[1] = stdoff ++ } else { ++ stdoff_subst[0] = stdoff ++ stdoff_subst[1] = rounded_stdoff ++ } ++ } else if (stdoff_subst[0]) { ++ stdoff_column = 2 * ($0 ~ /^Zone/) + 1 ++ stdoff_column_val = $stdoff_column ++ if (stdoff_column_val == stdoff_subst[0]) { ++ sub(stdoff_subst[0], stdoff_subst[1]) ++ } else if (stdoff_column_val != stdoff_subst[1]) { ++ stdoff_subst[0] = 0 ++ } + } +- if (!vanguard && $1 == "Rule" && $2 == "Morocco" && 2019 <= $3) { +- if ($9 == "0") { +- last_std_date = $3 " " $6 " " $7 " " $8 +- sub(/\t0\t/, "\t1:00\t") ++ ++ # In rearguard form, change the Japan rule line with "Sat>=8 25:00" ++ # to "Sun>=9 1:00", to cater to zic before 2007 and to older Java. ++ if ($0 ~ /^Rule/ && $2 == "Japan") { ++ if (DATAFORM == "rearguard") { ++ if ($7 == "Sat>=8" && $8 == "25:00") { ++ sub(/Sat>=8/, "Sun>=9") ++ sub(/25:00/, " 1:00") ++ } + } else { +- sub(/\t-1:00\t/, "\t0\t") ++ if ($7 == "Sun>=9" && $8 == "1:00") { ++ sub(/Sun>=9/, "Sat>=8") ++ sub(/ 1:00/, "25:00") ++ } + } + } +- if (!vanguard && $1 == "1:00" && $2 == "Morocco" && $3 == "+01/+00") { +- # 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") ++ ++ # In rearguard form, change the Morocco lines with negative SAVE values ++ # to use positive SAVE values. ++ if ($2 == "Morocco") { ++ if ($0 ~ /^Rule/) { ++ if ($4 ~ /^201[78]$/ && $6 == "Oct") { ++ if (DATAFORM == "rearguard") { ++ sub(/\t2018\t/, "\t2017\t") ++ } else { ++ sub(/\t2017\t/, "\t2018\t") ++ } ++ } ++ ++ if (2019 <= $3) { ++ if ($8 == "2:00") { ++ if (DATAFORM == "rearguard") { ++ sub(/\t0\t/, "\t1:00\t") ++ } else { ++ sub(/\t1:00\t/, "\t0\t") ++ } ++ } else { ++ if (DATAFORM == "rearguard") { ++ sub(/\t-1:00\t/, "\t0\t") ++ } else { ++ sub(/\t0\t/, "\t-1:00\t") ++ } ++ } ++ } ++ } ++ if ($1 ~ /^[+0-9-]/ && NF == 3) { ++ if (DATAFORM == "rearguard") { ++ sub(/1:00\tMorocco/, "0:00\tMorocco") ++ sub(/\t\+01\/\+00$/, "\t+00/+01") ++ } else { ++ sub(/0:00\tMorocco/, "1:00\tMorocco") ++ sub(/\t\+00\/+01$/, "\t+01/+00") ++ } ++ } ++ } ++} ++ ++/^Zone/ { ++ packrat_ignored = FILENAME == PACKRATDATA && PACKRATLIST && !packratlist[$2]; ++} ++{ ++ if (packrat_ignored && $0 !~ /^Rule/) { ++ sub(/^/, "#") + } + } + +--- contrib/tzdata/zishrink.awk.orig ++++ contrib/tzdata/zishrink.awk +@@ -23,7 +23,7 @@ + function gen_rule_name(name, \ + n) + { +- # Use a simple memonic: the first two letters. ++ # Use a simple mnemonic: the first two letters. + n = substr(name, 1, 2) + record_hash(n, name) + # printf "# %s = %s\n", n, name +@@ -150,10 +150,19 @@ + } + } + ++function make_line(n, field, \ ++ f, r) ++{ ++ r = field[1] ++ for (f = 2; f <= n; f++) ++ r = r " " field[f] ++ return r ++} ++ + # Process the input line LINE and save it for later output. + + function process_input_line(line, \ +- field, end, i, n, startdef, \ ++ f, field, end, i, n, r, startdef, \ + linkline, ruleline, zoneline) + { + # Remove comments, normalize spaces, and append a space to each line. +@@ -218,12 +227,11 @@ + + n = split(line, field) + +- # Abbreviate rule names. +- i = zoneline ? 4 : linkline ? 0 : 2 +- if (i && field[i] ~ /^[^-+0-9]/) { +- if (!rule[field[i]]) +- rule[field[i]] = gen_rule_name(field[i]) +- field[i] = rule[field[i]] ++ # Record which rule names are used, and generate their abbreviations. ++ f = zoneline ? 4 : linkline || ruleline ? 0 : 2 ++ r = field[f] ++ if (r ~ /^[^-+0-9]/) { ++ rule_used[r] = 1 + } + + # If this zone supersedes an earlier one, delete the earlier one +@@ -246,10 +254,38 @@ + zonedef[zonename] = nout + 1 + + # Save the line for later output. +- line = field[1] +- for (i = 2; i <= n; i++) +- line = line " " field[i] +- output_line[nout++] = line ++ output_line[nout++] = make_line(n, field) ++} ++ ++function omit_unused_rules( \ ++ i, field) ++{ ++ for (i = 0; i < nout; i++) { ++ split(output_line[i], field) ++ if (field[1] == "R" && !rule_used[field[2]]) { ++ output_line[i] = "" ++ } ++ } ++} ++ ++function abbreviate_rule_names( \ ++ abbr, f, field, i, n, r) ++{ ++ for (i = 0; i < nout; i++) { ++ n = split(output_line[i], field) ++ if (n) { ++ f = field[1] == "Z" ? 4 : field[1] == "L" ? 0 : 2 ++ r = field[f] ++ if (r ~ /^[^-+0-9]/) { ++ abbr = rule[r] ++ if (!abbr) { ++ rule[r] = abbr = gen_rule_name(r) ++ } ++ field[f] = abbr ++ output_line[i] = make_line(n, field) ++ } ++ } ++ } + } + + function output_saved_lines( \ +@@ -314,5 +350,7 @@ + } + + END { ++ omit_unused_rules() ++ abbreviate_rule_names() + output_saved_lines() + } +--- contrib/tzdata/zone.tab.orig ++++ contrib/tzdata/zone.tab +@@ -130,7 +130,7 @@ + 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 +5546-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) + CA +6404-13925 America/Dawson MST - Yukon (west) +@@ -400,7 +400,7 @@ + TV -0831+17913 Pacific/Funafuti + TW +2503+12130 Asia/Taipei + TZ -0648+03917 Africa/Dar_es_Salaam +-UA +5026+03031 Europe/Kiev Ukraine (most areas) ++UA +5026+03031 Europe/Kyiv Ukraine (most areas) + UA +4837+02218 Europe/Uzhgorod Transcarpathia + UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk + UG +0019+03225 Africa/Kampala +--- contrib/tzdata/zone1970.tab.orig ++++ contrib/tzdata/zone1970.tab +@@ -35,7 +35,7 @@ + #country- + #codes coordinates TZ comments + AD +4230+00131 Europe/Andorra +-AE,OM +2518+05518 Asia/Dubai ++AE,OM,RE,SC,TF +2518+05518 Asia/Dubai UAE, Oman, Réunion, Seychelles, Crozet, Scattered Is + AF +3431+06912 Asia/Kabul + AL +4120+01950 Europe/Tirane + AM +4011+04430 Asia/Yerevan +@@ -45,7 +45,6 @@ + AQ -6448-06406 Antarctica/Palmer Palmer + AQ -6734-06808 Antarctica/Rothera Rothera + AQ -720041+0023206 Antarctica/Troll Troll +-AQ -7824+10654 Antarctica/Vostok Vostok + AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) + AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF) + AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) +@@ -75,10 +74,9 @@ + AZ +4023+04951 Asia/Baku + BB +1306-05937 America/Barbados + BD +2343+09025 Asia/Dhaka +-BE +5050+00420 Europe/Brussels ++BE,LU,NL +5050+00420 Europe/Brussels + BG +4241+02319 Europe/Sofia + BM +3217-06446 Atlantic/Bermuda +-BN +0456+11455 Asia/Brunei + BO -1630-06809 America/La_Paz + BR -0351-03225 America/Noronha Atlantic islands + BR -0127-04829 America/Belem Pará (east); Amapá +@@ -119,30 +117,27 @@ + 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 +5946-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) ++CA +5546-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) + 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,GH,GM,GN,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan ++CI,BF,GH,GM,GN,IS,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 + CL -2709-10926 Pacific/Easter Easter Island + CN +3114+12128 Asia/Shanghai Beijing Time +-CN +4348+08735 Asia/Urumqi Xinjiang Time ++CN,AQ +4348+08735 Asia/Urumqi Xinjiang Time, Vostok + CO +0436-07405 America/Bogota + CR +0956-08405 America/Costa_Rica + CU +2308-08222 America/Havana + CV +1455-02331 Atlantic/Cape_Verde +-CX -1025+10543 Indian/Christmas + CY +3510+03322 Asia/Nicosia Cyprus (most areas) + CY +3507+03357 Asia/Famagusta Northern Cyprus + CZ,SK +5005+01426 Europe/Prague +-DE +5230+01322 Europe/Berlin Germany (most areas) +-DK +5540+01235 Europe/Copenhagen ++DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin Germany (most areas), Scandinavia + DO +1828-06954 America/Santo_Domingo + DZ +3647+00303 Africa/Algiers + EC -0210-07950 America/Guayaquil Ecuador (mainland) +@@ -156,11 +151,9 @@ + FI,AX +6010+02458 Europe/Helsinki + FJ -1808+17825 Pacific/Fiji + FK -5142-05751 Atlantic/Stanley +-FM +0725+15147 Pacific/Chuuk Chuuk/Truk, Yap +-FM +0658+15813 Pacific/Pohnpei Pohnpei/Ponape + FM +0519+16259 Pacific/Kosrae Kosrae + FO +6201-00646 Atlantic/Faroe +-FR +4852+00220 Europe/Paris ++FR,MC +4852+00220 Europe/Paris + GB,GG,IM,JE +513030-0000731 Europe/London + GE +4143+04449 Asia/Tbilisi + GF +0456-05220 America/Cayenne +@@ -189,14 +182,13 @@ + IO -0720+07225 Indian/Chagos + IQ +3321+04425 Asia/Baghdad + IR +3540+05126 Asia/Tehran +-IS +6409-02151 Atlantic/Reykjavik + IT,SM,VA +4154+01229 Europe/Rome + JM +175805-0764736 America/Jamaica + JO +3157+03556 Asia/Amman + JP +353916+1394441 Asia/Tokyo + KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi + KG +4254+07436 Asia/Bishkek +-KI +0125+17300 Pacific/Tarawa Gilbert Islands ++KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Tuvalu, Wallis & Futuna, Wake + KI -0247-17143 Pacific/Kanton Phoenix Islands + KI +0152-15720 Pacific/Kiritimati Line Islands + KP +3901+12545 Asia/Pyongyang +@@ -212,15 +204,12 @@ + LK +0656+07951 Asia/Colombo + LR +0618-01047 Africa/Monrovia + LT +5441+02519 Europe/Vilnius +-LU +4936+00609 Europe/Luxembourg + LV +5657+02406 Europe/Riga + LY +3254+01311 Africa/Tripoli + MA +3339-00735 Africa/Casablanca +-MC +4342+00723 Europe/Monaco + MD +4700+02850 Europe/Chisinau +-MH +0709+17112 Pacific/Majuro Marshall Islands (most areas) + MH +0905+16720 Pacific/Kwajalein Kwajalein +-MM +1647+09610 Asia/Yangon ++MM,CC +1647+09610 Asia/Yangon + MN +4755+10653 Asia/Ulaanbaatar Mongolia (most areas) + MN +4801+09139 Asia/Hovd Bayan-Ölgii, Govi-Altai, Hovd, Uvs, Zavkhan + MN +4804+11430 Asia/Choibalsan Dornod, Sükhbaatar +@@ -228,7 +217,7 @@ + MQ +1436-06105 America/Martinique + MT +3554+01431 Europe/Malta + MU -2010+05730 Indian/Mauritius +-MV +0410+07330 Indian/Maldives ++MV,TF +0410+07330 Indian/Maldives Maldives, Kerguelen, St Paul I, Amsterdam I + MX +1924-09909 America/Mexico_City Central Time + MX +2105-08646 America/Cancun Eastern Standard Time - Quintana Roo + MX +2058-08937 America/Merida Central Time - Campeche, Yucatán +@@ -240,16 +229,13 @@ + MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora + MX +3232-11701 America/Tijuana Pacific Time US - Baja California + MX +2048-10515 America/Bahia_Banderas Central Time - Bahía de Banderas +-MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula) +-MY +0133+11020 Asia/Kuching Sabah, Sarawak ++MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak, Brunei + MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time + NA -2234+01706 Africa/Windhoek + NC -2216+16627 Pacific/Noumea + NF -2903+16758 Pacific/Norfolk + NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time + NI +1209-08617 America/Managua +-NL +5222+00454 Europe/Amsterdam +-NO,SJ +5955+01045 Europe/Oslo + NP +2743+08519 Asia/Kathmandu + NR -0031+16655 Pacific/Nauru + NU -1901-16955 Pacific/Niue +@@ -260,7 +246,7 @@ + PF -1732-14934 Pacific/Tahiti Society Islands + PF -0900-13930 Pacific/Marquesas Marquesas Islands + PF -2308-13457 Pacific/Gambier Gambier Islands +-PG,AQ -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Dumont d'Urville ++PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville + PG -0613+15534 Pacific/Bougainville Bougainville + PH +1435+12100 Asia/Manila + PK +2452+06703 Asia/Karachi +@@ -276,7 +262,6 @@ + PW +0720+13429 Pacific/Palau + PY -2516-05740 America/Asuncion + QA,BH +2517+05132 Asia/Qatar +-RE,TF -2052+05528 Indian/Reunion Réunion, Crozet, Scattered Islands + RO +4426+02606 Europe/Bucharest + RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade + RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad +@@ -308,10 +293,8 @@ + RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka + RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea + SA,AQ,KW,YE +2438+04643 Asia/Riyadh Arabia, Syowa +-SB -0932+16012 Pacific/Guadalcanal +-SC -0440+05528 Indian/Mahe ++SB,FM -0932+16012 Pacific/Guadalcanal Solomons, Pohnpei + SD +1536+03232 Africa/Khartoum +-SE +5920+01803 Europe/Stockholm + SG,MY +0117+10351 Asia/Singapore Singapore, peninsular Malaysia + SR +0550-05510 America/Paramaribo + SS +0451+03137 Africa/Juba +@@ -320,8 +303,7 @@ + SY +3330+03618 Asia/Damascus + TC +2128-07108 America/Grand_Turk + TD +1207+01503 Africa/Ndjamena +-TF -492110+0701303 Indian/Kerguelen Kerguelen, St Paul Island, Amsterdam Island +-TH,KH,LA,VN +1345+10031 Asia/Bangkok Indochina (most areas) ++TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok Indochina (most areas) + TJ +3835+06848 Asia/Dushanbe + TK -0922-17114 Pacific/Fakaofo + TL -0833+12535 Asia/Dili +@@ -329,12 +311,10 @@ + TN +3648+01011 Africa/Tunis + TO -210800-1751200 Pacific/Tongatapu + TR +4101+02858 Europe/Istanbul +-TV -0831+17913 Pacific/Funafuti + TW +2503+12130 Asia/Taipei +-UA +5026+03031 Europe/Kiev Ukraine (most areas) ++UA +5026+03031 Europe/Kyiv Ukraine (most areas) + UA +4837+02218 Europe/Uzhgorod Transcarpathia + UA +4750+03510 Europe/Zaporozhye Zaporozhye and east Lugansk +-UM +1917+16637 Pacific/Wake Wake Island + US +404251-0740023 America/New_York Eastern (most areas) + US +421953-0830245 America/Detroit Eastern - MI (most areas) + US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) +@@ -370,6 +350,29 @@ + VE +1030-06656 America/Caracas + VN +1045+10640 Asia/Ho_Chi_Minh Vietnam (south) + VU -1740+16825 Pacific/Efate +-WF -1318-17610 Pacific/Wallis + WS -1350-17144 Pacific/Apia + ZA,LS,SZ -2615+02800 Africa/Johannesburg ++# ++# The next section contains experimental tab-separated comments for ++# use by user agents like tzselect that identify continents and oceans. ++# ++# For example, the comment "#@AQ<tab>Antarctica/" means the country code ++# AQ is in the continent Antarctica regardless of the Zone name, ++# so Pacific/Auckland should be listed under Antarctica as well as ++# under the Pacific because its line's country codes include AQ. ++# ++# If more than one country code is affected each is listed separated ++# by commas, e.g., #@IS,SH<tab>Atlantic/". If a country code is in ++# more than one continent or ocean, each is listed separated by ++# commas, e.g., the second column of "#@CY,TR<tab>Asia/,Europe/". ++# ++# These experimental comments are present only for country codes where ++# the continent or ocean is not already obvious from the Zone name. ++# For example, there is no such comment for RU since it already ++# corresponds to Zone names starting with both "Europe/" and "Asia/". ++# ++#@AQ Antarctica/ ++#@IS,SH Atlantic/ ++#@CY,TR Asia/,Europe/ ++#@SJ Arctic/ ++#@CC,CX,KM,MG,YT Indian/ |