Commit 52b750c8 authored by Philip Paeps's avatar Philip Paeps
Browse files

Import tzdata 2018d

parent b6a2820b
......@@ -25,7 +25,8 @@ justification. Citations should use https: URLs if available.
Please submit changes against either the latest release in
<https://www.iana.org/time-zones> or the master branch of the development
repository. If you use Git the following workflow may be helpful:
repository. The latter is preferred. If you use Git the following
workflow may be helpful:
* Copy the development repository.
......@@ -42,6 +43,12 @@ repository. If you use Git the following workflow may be helpful:
git checkout -b mybranch
* Sleuth by using 'git blame'. For example, when fixing data for
Africa/Sao_Tome, if the command 'git blame africa' outputs a line
'2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone
Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should
provide some justification for the 'Zone Africa/Sao_Tome' line.
* Edit source files. Include commentary that justifies the
changes by citing reliable sources.
......@@ -67,6 +74,9 @@ repository. If you use Git the following workflow may be helpful:
git send-email master
For an archived example of such an email, see
<https://mm.icann.org/pipermail/tz/2018-February/026122.html>.
* Start anew by getting current with the master branch again
(the second step above).
......
......@@ -10,6 +10,15 @@ VERSION= unknown
# Email address for bug reports.
BUGEMAIL= tz@iana.org
# Choose source data features. To get new features right away, use:
# DATAFORM= vanguard
# To wait a while before using new features, to give downstream users
# time to upgrade zic (the default), use:
# DATAFORM= main
# To wait even longer for new features, use:
# DATAFORM= rearguard
DATAFORM= main
# Change the line below for your time zone (after finding the zone you want in
# the time zone files, or adding it to a time zone file).
# Alternately, if you discover you've got the wrong time zone, you can just
......@@ -25,10 +34,10 @@ LOCALTIME= GMT
# for handling POSIX-style time zone environment variables,
# change the line below (after finding the zone you want in the
# time zone files, or adding it to a time zone file).
# (When a POSIX-style environment variable is handled, the rules in the
# When a POSIX-style environment variable is handled, the rules in the
# template file are used to determine "spring forward" and "fall back" days and
# times; the environment variable itself specifies UT offsets of standard and
# summer time.)
# daylight saving time.
# Alternately, if you discover you've got the wrong time zone, you can just
# zic -p rightzone
# to correct things.
......@@ -189,13 +198,18 @@ LDLIBS=
# -DHAVE_STDINT_H if you have a non-C99 compiler with <stdint.h>
# -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
# -DHAVE_STRDUP=0 if your system lacks the strdup function
# -DHAVE_STRTOLL=0 if your system lacks the strtoll function
# -DHAVE_SYMLINK=0 if your system lacks the symlink function
# -DHAVE_SYS_STAT_H=0 if your compiler lacks a <sys/stat.h>
# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a <sys/wait.h>
# -DHAVE_TZSET=0 if your system lacks a tzset function
# -DHAVE_UNISTD_H=0 if your compiler lacks a <unistd.h>
# -Dlocale_t=XXX if your system uses XXX instead of locale_t
# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
# with external linkage, e.g., applications cannot define 'localtime'.
# -Dssize_t=long on hosts like MS-Windows that lack ssize_t
# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
# security implications and is not recommended for general use
# -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
# not needed by the main-program tz code, which is single-threaded.
# Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
......@@ -394,13 +408,19 @@ SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~'
SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]'
# Non-ASCII non-letters that OK_CHAR allows, as these characters are
# useful in commentary. XEmacs 21.5.34 displays them correctly,
# presumably because they are Latin-1.
UNUSUAL_OK_CHARSET= °±½¾×
# OK_CHAR matches any character allowed in the distributed files.
# This is the same as SAFE_CHAR, except that multibyte letters are
# also allowed so that commentary can contain people's names and quote
# non-English sources. For non-letters the sources are limited to
# ASCII renderings for the convenience of maintainers whose text editors
# mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]'
# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
# multibyte letters are also allowed so that commentary can contain a
# few safe symbols and people's names and can quote non-English sources.
# Other non-letters are limited to ASCII renderings for the
# convenience of maintainers using XEmacs 21.5.34, which by default
# mishandles Unicode characters U+0100 and greater.
OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
# SAFE_LINE matches a line of safe characters.
# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
......@@ -462,10 +482,12 @@ TDATA= $(YDATA) $(NDATA) $(BACKWARD)
ZONETABLES= zone1970.tab zone.tab
TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
LEAP_DEPS= leapseconds.awk leap-seconds.list
TZDATA_ZI_DEPS= zishrink.awk version $(TDATA) $(PACKRATDATA)
TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
leapseconds yearistype.sh $(ZONETABLES)
AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk zishrink.awk
AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \
ziguard.awk zishrink.awk
MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl
TZS_YEAR= 2050
TZS= to$(TZS_YEAR).tzs
......@@ -499,7 +521,8 @@ VERSION_DEPS= \
SHELL= /bin/sh
all: tzselect yearistype zic zdump libtz.a $(TABDATA)
all: tzselect yearistype zic zdump libtz.a $(TABDATA) \
vanguard.zi main.zi rearguard.zi
ALL: all date $(ENCHILADA)
......@@ -534,11 +557,15 @@ version: $(VERSION_DEPS)
printf '%s\n' "$$V" >$@.out
mv $@.out $@
# This file can be tailored by setting BACKWARD, PACKRATDATA, etc.
tzdata.zi: $(TZDATA_ZI_DEPS)
# These files can be tailored by setting BACKWARD, PACKRATDATA, etc.
vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
$(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \
>$@.out
mv $@.out $@
tzdata.zi: $(DATAFORM).zi version
version=`sed 1q version` && \
LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \
$(TDATA) $(PACKRATDATA) >$@.out
$(DATAFORM).zi >$@.out
mv $@.out $@
version.h: version
......@@ -614,19 +641,29 @@ posix_packrat:
zones: $(REDO)
# dummy.zd is not a real file; it is mentioned here only so that the
# top-level 'make' does not have a syntax error.
ZDS = dummy.zd
# Rule used only by submakes invoked by the $(TZS_NEW) rule.
# It is separate so that GNU 'make -j' can run instances in parallel.
$(ZDS): zdump
./zdump -i -c $(TZS_YEAR) '$(wd)/'$$(expr $@ : '\(.*\).zd') >$@
$(TZS_NEW): tzdata.zi zdump zic
mkdir -p tzs.dir
rm -fr tzs.dir
mkdir tzs.dir
$(zic) -d tzs.dir tzdata.zi
$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
tzdata.zi | LC_ALL=C sort >$@.out
wd=`pwd` && \
zones=`$(AWK) -v wd="$$wd" \
'/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \
| LC_ALL=C sort` && \
./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
rm -fr tzs.dir $@.out
mv $@.sed.out $@
set x `$(AWK) '/^Z/{print "tzs.dir/" $$2 ".zd"}' tzdata.zi \
| LC_ALL=C sort -t . -k 2,2` && \
shift && \
ZDS=$$* && \
$(MAKE) wd="$$wd" TZS_YEAR=$(TZS_YEAR) ZDS="$$ZDS" $$ZDS && \
sed 's,^TZ=".*tzs\.dir/,TZ=",' $$ZDS >>$@.out
rm -fr tzs.dir
mv $@.out $@
# If $(TZS) does not already exist (e.g., old-format tarballs), create it.
# If it exists but 'make check_tzs' fails, a maintainer should inspect the
......@@ -669,8 +706,10 @@ check_character_set: $(ENCHILADA)
sharp='#' && \
! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
$(MISC) $(SOURCES) $(WEB_PAGES) \
CONTRIBUTING LICENSE Makefile README \
CONTRIBUTING LICENSE README \
version tzdata.zi && \
! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_CHARSET='$(OK_CHAR)'*$$' \
Makefile && \
! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
leapseconds yearistype.sh zone.tab && \
! grep -Env $(OK_LINE) $(ENCHILADA); \
......@@ -702,7 +741,7 @@ check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab
$(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
LC_ALL=C sort -cu
check_links: checklinks.awk $(TDATA_TO_CHECK)
check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
$(AWK) -f checklinks.awk $(TDATA_TO_CHECK)
$(AWK) -f checklinks.awk tzdata.zi
......@@ -720,17 +759,26 @@ check_tzs: $(TZS) $(TZS_NEW)
check_web: tz-how-to.html
$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
# Check that tzdata.zi generates the same binary data that its sources do.
check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA)
# Check that zishrink.awk does not alter the data, and that ziguard.awk
# preserves main-format data.
check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \
$(DATAFORM).zi tzdata.zi
for type in posix right; do \
mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \
mkdir -p time_t.dir/$$type time_t.dir/$$type-t \
time_t.dir/$$type-shrunk && \
case $$type in \
right) leap='-L leapseconds';; \
*) leap=;; \
esac && \
$(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \
$(AWK) '/^Rule/' $(TDATA) | \
$(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
$(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \
case $(DATAFORM) in \
main) \
$(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \
$(AWK) '/^Rule/' $(TDATA) | \
$(ZIC) $$leap -d time_t.dir/$$type-t - \
$(PACKRATDATA) && \
diff -r time_t.dir/$$type time_t.dir/$$type-t;; \
esac && \
$(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \
diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \
done
......@@ -740,7 +788,7 @@ clean_misc:
rm -f core *.o *.out \
date tzselect version.h zdump zic yearistype libtz.a
clean: clean_misc
rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW)
rm -fr *.dir *.zi tzdb-*/ $(TZS_NEW)
maintainer-clean: clean
@echo 'This command is intended for maintainers to use; it'
......@@ -856,6 +904,9 @@ tarballs traditional_tarballs signatures traditional_signatures: version
VERSION=`cat version` && \
$(MAKE) VERSION="$$VERSION" $@_version
# These *_version rules are intended for use if VERSION is set by some
# other means. Ordinarily these rules are used only by the above
# non-_version rules, which set VERSION on the 'make' command line.
tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz
traditional_tarballs_version: \
tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
......@@ -917,13 +968,17 @@ zic.o: private.h tzfile.h version.h
.KEEP_STATE:
.PHONY: ALL INSTALL all
.PHONY: check check_character_set check_links
.PHONY: check check_character_set check_links check_name_lengths
.PHONY: check_public check_sorted check_tables
.PHONY: check_time_t_alternatives check_tzs check_web check_white_space
.PHONY: check_zishrink
.PHONY: clean clean_misc force_tzs
.PHONY: clean clean_misc dummy.zd force_tzs
.PHONY: install install_data maintainer-clean names
.PHONY: posix_only posix_packrat posix_right
.PHONY: public right_only right_posix signatures signatures_version
.PHONY: tarballs tarballs_version typecheck
.PHONY: tarballs tarballs_version
.PHONY: traditional_signatures traditional_signatures_version
.PHONY: traditional_tarballs traditional_tarballs_version
.PHONY: typecheck
.PHONY: zonenames zones
.PHONY: $(ZDS)
News for the tz database
Release 2018d - 2018-03-22 07:05:46 -0700
Briefly:
Palestine starts DST a week earlier in 2018.
Add support for vanguard and rearguard data consumers.
Add subsecond precision to source data format, though not to data.
Changes to future time stamps
In 2018, Palestine starts DST on March 24, not March 31.
Adjust future predictions accordingly. (Thanks to Sharef Mustafa.)
Changes to past and future time stamps
Casey Station in Antarctica changed from +11 to +08 on 2018-03-11
at 04:00. (Thanks to Steffen Thorsen.)
Changes to past time stamps
Historical transitions for Uruguay, represented by
America/Montevideo, have been updated per official legal documents,
replacing previous data mainly originating from the inventions of
Shanks & Pottenger. This has resulted in adjustments ranging from
30 to 90 minutes in either direction over at least two dozen
distinct periods ranging from one day to several years in length.
A mere handful of pre-1991 transitions are unaffected; data since
then has come from more reliable contemporaneous reporting. These
changes affect various timestamps in 1920-1923, 1936, 1939,
1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990.
Additionally, Uruguay's pre-standard-time UT offset has been
adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to
match the location of the Observatory of the National Meteorological
Institute in Montevideo.
(Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.)
Enderbury and Kiritimati skipped New Year's Eve 1994, not
New Year's Day 1995. (Thanks to Kerry Shetline.)
Fix the 1912-01-01 transition for Portugual and its colonies.
This transition was at 00:00 according to the new UT offset, not
according to the old one. Also assume that Cape Verde switched on
the same date as the rest, not in 1907. This affects
Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores,
Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon.
(Thanks to Michael Deckers.)
Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in
Turks & Caicos.
Changes to past time zone abbreviations
MMT took effect in Uruguay from 1908-06-10, not 1898-06-28. There
is no clock change associated with the transition.
Changes to build procedure
The new DATAFORM macro in the Makefile lets the installer choose
among three source data formats. The idea is to lessen downstream
disruption when data formats are improved.
* DATAFORM=vanguard installs from the latest, bleeding-edge
format. DATAFORM=main (the default) installs from the format
used in the 'africa' etc. files. DATAFORM=rearguard installs
from a trailing-edge format. Eventually, elements of today's
vanguard format should move to the main format, and similarly
the main format's features should eventually move to the
rearguard format.
* In the current version, the main and rearguard formats are
identical and match that of 2018c, so this change does not
affect default behavior. The vanguard format currently contains
one feature not in the main format: negative SAVE values. This
improves support for Ireland, which uses Irish Standard Time
(IST, UTC+01) in summer and GMT (UTC) in winter. tzcode has
supported negative SAVE values for decades, and this feature
should move to the main format soon. However, it will not move
to the rearguard format for quite some time because some
downstream parsers do not support it.
* The build procedure constructs three files vanguard.zi, main.zi,
and rearguard.zi, one for each format. The files represent the
same data as closely as the formats allow. These three files
are intended for downstream data consumers and are not
installed. Zoneinfo parsers that do not support negative SAVE values
should start using rearguard.zi, so that they will be unaffected
when the negative-DST feature moves from vanguard to main.
Bleeding-edge Zoneinfo parsers that support the new features
already can use vanguard.zi; in this respect, current tzcode is
bleeding-edge.
The Makefile should now be safe for parallelized builds, and 'make
-j to2050new.tzs' is now much faster on a multiprocessor host
with GNU Make.
When built with -DSUPPRESS_TZDIR, the tzcode library no longer
prepends TZDIR/ to file names that do not begin with '/'. This is
not recommended for general use, due to its security implications.
(From a suggestion by Manuela Friedrich.)
Changes to code
zic now accepts subsecond precision in expressions like
00:19:32.13, which is approximately the legal time of the
Netherlands from 1835 to 1937. However, because it is
questionable whether the few recorded uses of non-integer offsets
had subsecond precision in practice, there are no plans for tzdata
to use this feature. (Thanks to Steve Allen for pointing out
the limitations of historical data in this area.)
The code is a bit more portable to MS-Windows. Installers can
compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that
reserve identifiers like 'localtime'. (Thanks to Manuela
Friedrich).
Changes to documentation and commentary
theory.html now outlines tzdb's extensions to POSIX's model for
civil time, and has a section "POSIX features no longer needed"
that lists POSIX API components that are now vestigial.
(From suggestions by Steve Summit.) It also better distinguishes
time zones from tz regions. (From a suggestion by Guy Harris.)
Commentary is now more consistent about using the phrase "daylight
saving time", to match the C name tm_isdst. Daylight saving time
need not occur in summer, and need not have a positive offset from
standard time.
Commentary about historical transitions in Uruguay has been expanded
with links to many relevant legal documents.
(Thanks to Tim Parenti.)
Commentary now uses some non-ASCII characters with Unicode value
less than U+0100, as they can be useful and should work even with
older editors such as XEmacs.
Release 2018c - 2018-01-22 23:00:44 -0800
Briefly:
Revert Irish changes that relied on negative DST offsets.
Revert Irish changes that relied on negative SAVE values.
Changes to tm_isdst
......@@ -14,8 +151,8 @@ Release 2018c - 2018-01-22 23:00:44 -0800
struct tm type. This reversion is intended to be a temporary
workaround for problems discovered with downstream uses of
releases 2018a and 2018b, which implemented Irish time by using
negative DST offsets in the Eire rules of the 'europe' file.
Although negative DST offsets have been part of tzcode for many
negative SAVE values in the Eire rules of the 'europe' file.
Although negative SAVE values have been part of tzcode for many
years and are supported by many platforms, they were not
documented before 2018a and ICU and OpenJDK do not currently
support them. A mechanism to export data to platforms lacking
......@@ -900,7 +1037,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800
Comments in zone tables have been improved. (Thanks to J William Piggott.)
tzselect again limits its menu comments so that menus fit on a
24x80 alphanumeric display.
24×80 alphanumeric display.
A new web page tz-how-to.html. (Thanks to Bill Seymour.)
......
......@@ -115,13 +115,13 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01
# Cape Verde / Cabo Verde
#
# From Paul Eggert (2018-02-16):
# Shanks gives 1907 for the transition to +02.
# Perhaps the 1911-05-26 Portuguese decree
# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
# merely made it official?
# For now, ignore that and follow the 1911-05-26 Portuguese decree
# (see Europe/Lisbon).
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Atlantic/Cape_Verde -1:34:04 - LMT 1907 # Praia
Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia
-2:00 - -02 1942 Sep
-2:00 1:00 -01 1945 Oct 15
-2:00 - -02 1975 Nov 25 2:00
......@@ -370,15 +370,34 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct
# See Africa/Abidjan.
# Ghana
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
# From Paul Eggert (2018-01-30):
# Whitman says DST was observed from 1931 to "the present";
# Shanks & Pottenger say 1936 to 1942;
# and September 1 to January 1 is given by:
# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book,
# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii.
# For lack of better info, assume DST was observed from 1920 to 1942.
Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST
Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT
# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST,
# with transitions on 09-01 and 12-31 at 00:00.
# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold
# Coast. Report for 1919. (March 1921), OCLC 784024077
# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf
# lists the Determination of the Time Ordinance, 1919, No. 18,
# "to advance the time observed locally by the space of twenty minutes
# during the last four months of each year; the object in view being
# to extend during those months the period of daylight-time available
# for evening recreation after office hours."
# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33,
# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich
# time its legal time and simultaneously legalized a summer time of
# UTC - 00:20 minutes from March to October."; a footnote lists
# the ordinance as being dated 1919-11-24.
# The Crown Colonist, Volume 12 (1942), p 176, says "the Government
# intend advancing Gold Coast time half an hour ahead of G.M.T.
# The actual date of the alteration has not yet been announced."
# These sources are incomplete and contradictory. Possibly what is
# now Ghana observed different DST regimes in different years. For
# lack of better info, use Shanks except treat the minus sign as a
# typo, and assume DST started in 1920 not 1936.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Ghana 1920 1942 - Sep 1 0:00 0:20 -
Rule Ghana 1920 1942 - Dec 31 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Accra -0:00:52 - LMT 1918
0:00 Ghana GMT/+0020
......@@ -388,13 +407,13 @@ Zone Africa/Accra -0:00:52 - LMT 1918
# Guinea-Bissau
#
# From Paul Eggert (2018-02-16):
# Shanks gives 1911-05-26 for the transition to WAT,
# evidently confusing the date of the Portuguese decree
# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
# with the date that it took effect, namely 1912-01-01.
# (see Europe/Lisbon) with the date that it took effect.
#
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1
Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u
-1:00 - -01 1975
0:00 - GMT
......@@ -590,9 +609,9 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920
# at 2am (or 02:00) local time..."
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Mauritius 1982 only - Oct 10 0:00 1:00 S
Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
Rule Mauritius 1983 only - Mar 21 0:00 0 -
Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 S
Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis
......@@ -1037,6 +1056,8 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis
# São Tomé and Príncipe
# See Europe/Lisbon for info about the 1912 transition.
# From Steffen Thorsen (2018-01-08):
# Multiple sources tell that São Tomé changed from UTC to UTC+1 as
# they entered the year 2018.
......@@ -1045,7 +1066,7 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Denis
# http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017
Zone Africa/Sao_Tome 0:26:56 - LMT 1884
-0:36:45 - LMT 1912 # Lisbon Mean Time
-0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT
0:00 - GMT 2018 Jan 1 01:00
1:00 - WAT
......
......@@ -75,7 +75,8 @@ Zone Antarctica/Casey 0 - -00 1969
8:00 - +08 2011 Oct 28 2:00
11:00 - +11 2012 Feb 21 17:00u
8:00 - +08 2016 Oct 22
11:00 - +11
11:00 - +11 2018 Mar 11 4:00
8:00 - +08
Zone Antarctica/Davis 0 - -00 1957 Jan 13
7:00 - +07 1964 Nov
0 - -00 1969 Feb
......
......@@ -69,13 +69,13 @@
Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S
Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S
Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 -
Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 S
Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
# Afghanistan
......@@ -110,7 +110,7 @@ Zone Asia/Kabul 4:36:48 - LMT 1890
# (brief)
# http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 S
Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
......@@ -136,7 +136,7 @@ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2
# http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S
Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Baku 3:19:24 - LMT 1924 May 2
......@@ -223,7 +223,7 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2
# http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Dhaka 2009 only - Jun 19 23:00 1:00 S
Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
Rule Dhaka 2009 only - Dec 31 24:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
......@@ -764,8 +764,9 @@ Rule Macau 1974 1977 - Oct Sun>=15 3:30 0 S
Rule Macau 1975 1977 - Apr Sun>=15 3:30 1:00 D
Rule Macau 1978 1980 - Apr Sun>=15 0:00 1:00 D
Rule Macau 1978 1980 - Oct Sun>=15 0:00 0 S
# See Europe/Lisbon for info about the 1912 transition.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Macau 7:34:20 - LMT 1912 Jan 1
Zone Asia/Macau 7:34:20 - LMT 1911 Dec 31 16:00u
8:00 Macau C%sT
......@@ -1106,61 +1107,61 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov
# thirtieth day of Shahrivar.
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Iran 1978 1980 - Mar 21 0:00 1:00 D
Rule Iran 1978 only - Oct 21 0:00 0 S
Rule Iran 1979 only - Sep 19 0:00 0 S
Rule Iran 1980 only - Sep 23 0:00 0 S
Rule Iran 1991 only - May 3 0:00 1:00 D
Rule Iran 1992 1995 - Mar 22 0:00 1:00 D
Rule Iran 1991 1995 - Sep 22 0:00 0 S
Rule Iran 1996 only - Mar 21 0:00 1:00 D
Rule Iran 1996 only - Sep 21 0:00 0 S
Rule Iran 1997 1999 - Mar 22 0:00 1:00 D
Rule Iran 1997 1999 - Sep 22 0:00 0 S
Rule Iran 2000 only - Mar 21 0:00 1:00 D
Rule Iran 2000 only - Sep 21 0:00 0 S
Rule Iran 2001 2003 - Mar 22 0:00 1:00 D
Rule Iran 2001 2003 - Sep 22 0:00 0 S
Rule Iran 2004 only - Mar 21 0:00 1:00 D
Rule Iran 2004 only - Sep 21 0:00 0 S
Rule Iran 2005 only - Mar 22 0:00 1:00 D
Rule Iran 2005 only - Sep 22 0:00 0 S
Rule Iran 2008 only - Mar 21 0:00 1:00 D
Rule Iran 2008 only - Sep 21 0:00 0 S
Rule Iran 2009 2011 - Mar 22 0:00 1:00 D
Rule Iran 2009 2011 - Sep 22 0:00 0 S
Rule Iran 2012 only - Mar 21 0:00 1:00 D
Rule Iran 2012 only - Sep 21 0:00 0 S
Rule Iran 2013 2015 - Mar 22 0:00 1:00 D
Rule Iran 2013 2015 - Sep 22 0:00 0 S
Rule Iran 2016 only - Mar 21 0:00 1:00 D
Rule Iran 2016 only - Sep 21 0:00 0 S
Rule Iran 2017 2019 - Mar 22 0:00 1:00 D
Rule Iran 2017 2019 - Sep 22 0:00 0 S
Rule Iran 2020 only - Mar 21 0:00 1:00 D
Rule Iran 2020 only - Sep 21 0:00 0 S
Rule Iran 2021 2023 - Mar 22 0:00 1:00 D
Rule Iran 2021 2023 - Sep 22 0:00 0 S
Rule Iran 2024 only - Mar 21 0:00 1:00 D
Rule Iran 2024 only - Sep 21 0:00 0 S
Rule Iran 2025 2027 - Mar 22 0:00 1:00 D
Rule Iran 2025 2027 - Sep 22 0:00 0 S
Rule Iran 2028 2029 - Mar 21 0:00 1:00 D
Rule Iran 2028 2029 - Sep 21 0:00 0 S