summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Bishop <stuart.bishop@canonical.com>2019-10-02 15:29:28 +1000
committerStuart Bishop <stuart.bishop@canonical.com>2019-10-02 15:29:28 +1000
commit6870ec1a032a8200cf2557a298b3132c7e1bfc9f (patch)
treeb9e21395acff225c94c01f6991e386065f6668b6
parent62f872054dde69e5c510094093cd6e221d96d5db (diff)
parent5e47a3ec05c6dbc232fc867cec78ec4568f27c99 (diff)
downloadpytz-git-6870ec1a032a8200cf2557a298b3132c7e1bfc9f.tar.gz
IANA 2019c
-rw-r--r--tz/NEWS75
-rw-r--r--tz/asia23
-rw-r--r--tz/australasia42
-rw-r--r--tz/backzone34
-rw-r--r--tz/europe186
-rw-r--r--tz/leap-seconds.list8
-rwxr-xr-x[-rw-r--r--]tz/leapseconds.awk195
-rw-r--r--tz/northamerica132
-rw-r--r--tz/southamerica11
-rw-r--r--tz/theory.html77
-rw-r--r--tz/tz-link.html50
-rw-r--r--tz/zic.c2
12 files changed, 648 insertions, 187 deletions
diff --git a/tz/NEWS b/tz/NEWS
index 8b05f8f..af0f06f 100644
--- a/tz/NEWS
+++ b/tz/NEWS
@@ -1,5 +1,80 @@
News for the tz database
+Release 2019c - 2019-09-11 08:59:48 -0700
+
+ Briefly:
+ Fiji observes DST from 2019-11-10 to 2020-01-12.
+ Norfolk Island starts observing Australian-style DST.
+
+ Changes to future timestamps
+
+ Fiji's next DST transitions will be 2019-11-10 and 2020-01-12
+ instead of 2019-11-03 and 2020-01-19. (Thanks to Raymond Kumar.)
+ Adjust future guesses accordingly.
+
+ Norfolk Island will observe Australian-style DST starting in
+ spring 2019. The first transition is on 2019-10-06. (Thanks to
+ Kyle Czech and Michael Deckers.)
+
+ Changes to past timestamps
+
+ Many corrections to time in Turkey from 1940 through 1985.
+ (Thanks to Oya Vulaş via Alois Treindl, and to Kıvanç Yazan.)
+
+ The Norfolk Island 1975-03-02 transition was at 02:00 standard
+ time, not 02:00 DST. (Thanks to Michael Deckers.)
+
+ South Korea observed DST from 1948 through 1951. Although this
+ info was supposed to appear in release 2014j, a typo inadvertently
+ suppressed the change. (Thanks to Alois Treindl.)
+
+ Detroit observed DST in 1967 and 1968 following the US DST rules,
+ except that its 1967 DST began on June 14 at 00:01. (Thanks to
+ Alois Treindl for pointing out that the old data entries were
+ probably wrong.)
+
+ Fix several errors in pre-1970 transitions in Perry County, IN.
+ (Thanks to Alois Triendl for pointing out the 1967/9 errors.)
+
+ Edmonton did not observe DST in 1967 or 1969. In 1946 Vancouver
+ ended DST on 09-29 not 10-13, and Vienna ended DST on 10-07 not
+ 10-06. In 1945 Königsberg (now Kaliningrad) switched from +01/+02
+ to +02/+03 on 04-10 not 01-01, and its +02/+03 is abbreviated
+ EET/EEST, not CET/CEST. (Thanks to Alois Triendl.) In 1946
+ Königsberg switched to +03 on 04-07 not 01-01.
+
+ In 1946 Louisville switched from CST to CDT on 04-28 at 00:01, not
+ 01-01 at 00:00. (Thanks to Alois Treindl and Michael Deckers.)
+ Also, it switched from CST to CDT on 1950-04-30, not 1947-04-27.
+
+ The 1892-05-01 transition in Brussels was at 00:17:30, not at noon.
+ (Thanks to Michael Deckers.)
+
+ Changes to past time zone abbreviations and DST flags
+
+ Hong Kong Winter Time, observed from 1941-10-01 to 1941-12-25,
+ is now flagged as DST and is abbreviated HKWT not HKT.
+
+ Changes to code
+
+ leapseconds.awk now relies only on its input data, rather than
+ also relying on its comments. (Inspired by code from Dennis
+ Ferguson and Chris Woodbury.)
+
+ The code now defends against CRLFs in leap-seconds.list.
+ (Thanks to Brian Inglis and Chris Woodbury.)
+
+ Changes to documentation and commentary
+
+ theory.html discusses leap seconds. (Thanks to Steve Summit.)
+
+ Nashville's newspapers dueled about the time of day in the 1950s.
+ (Thanks to John Seigenthaler.)
+
+ Liechtenstein observed Swiss DST in 1941/2.
+ (Thanks to Alois Treindl.)
+
+
Release 2019b - 2019-07-01 00:09:53 -0700
Briefly:
diff --git a/tz/asia b/tz/asia
index 348e2b5..b29c896 100644
--- a/tz/asia
+++ b/tz/asia
@@ -8,7 +8,7 @@
# tz@iana.org for general use in the future). For more, please see
# the file CONTRIBUTING in the tz distribution.
-# From Paul Eggert (2018-06-19):
+# From Paul Eggert (2019-07-11):
#
# Unless otherwise specified, the source for data through 1990 is:
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
@@ -47,13 +47,13 @@
# 7:00 WIB west Indonesia (Waktu Indonesia Barat)
# 8:00 WITA central Indonesia (Waktu Indonesia Tengah)
# 8:00 CST China
-# 8:00 PST PDT* Philippine Standard Time
+# 8:00 HKT HKST Hong Kong (HKWT* for Winter Time in late 1941)
+# 8:00 PST PDT* Philippines
# 8:30 KST KDT Korea when at +0830
# 9:00 WIT east Indonesia (Waktu Indonesia Timur)
# 9:00 JST JDT Japan
# 9:00 KST KDT Korea when at +09
-# 9:30 ACST Australian Central Standard Time
-# *I invented the abbreviation PDT; see "Philippines" below.
+# *I invented the abbreviations HKWT and PDT; see below.
# Otherwise, these tables typically use numeric abbreviations like +03
# and +0330 for integer hour and minute UT offsets. Although earlier
# editions invented alphabetic time zone abbreviations for every
@@ -653,6 +653,15 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928
# * 1941-09-30, Hong Kong Daily Press, Winter Time Warning.
# https://i.imgur.com/dge4kFJ.png
+# From Paul Eggert (2019-07-11):
+# "Hong Kong winter time" is considered to be daylight saving.
+# "Hong Kong had adopted daylight saving on June 15 as a wartime measure,
+# clocks moving forward one hour until October 1, when they would be put back
+# by just half an hour for 'Hong Kong Winter time', so that daylight saving
+# operated year round." -- Low Z. The longest day: when wartime Hong Kong
+# introduced daylight saving. South China Morning Post. 2019-06-28.
+# https://www.scmp.com/magazines/post-magazine/short-reads/article/3016281/longest-day-when-wartime-hong-kong-introduced
+
# From P Chan (2018-12-31):
# * According to the Hong Kong Daylight-Saving Regulations, 1941, the
# 1941 spring-forward transition was at 03:00.
@@ -754,7 +763,7 @@ Rule HK 1979 only - Oct 21 3:30 0 -
Zone Asia/Hong_Kong 7:36:42 - LMT 1904 Oct 30 0:36:42
8:00 - HKT 1941 Jun 15 3:00
8:00 1:00 HKST 1941 Oct 1 4:00
- 8:30 - HKT 1941 Dec 25
+ 8:00 0:30 HKWT 1941 Dec 25
9:00 - JST 1945 Nov 18 2:00
8:00 HK HK%sT
@@ -2419,7 +2428,7 @@ Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1
8:30 - KST 1912 Jan 1
9:00 - JST 1945 Sep 8
- 9:00 - KST 1954 Mar 21
+ 9:00 ROK K%sT 1954 Mar 21
8:30 ROK K%sT 1961 Aug 10
9:00 ROK K%sT
Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1
@@ -3604,7 +3613,7 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2
# and in South Vietnam in particular (after 1954):
# To 07:00 on 1911-05-01.
# To 08:00 on 1942-12-31 at 23:00.
-# To 09:00 in 1945-03-14 at 23:00.
+# To 09:00 on 1945-03-14 at 23:00.
# To 07:00 on 1945-09-02 in Vietnam.
# To 08:00 on 1947-04-01 in French-controlled Indochina.
# To 07:00 on 1955-07-01 in South Vietnam.
diff --git a/tz/australasia b/tz/australasia
index 0544e58..ac44c04 100644
--- a/tz/australasia
+++ b/tz/australasia
@@ -367,13 +367,18 @@ Zone Indian/Cocos 6:27:40 - LMT 1900
# From Raymond Kumar (2018-07-13):
# http://www.fijitimes.com/government-approves-2018-daylight-saving/
# ... The daylight saving period will end at 3am on Sunday January 13, 2019.
-#
-# From Paul Eggert (2018-07-15):
-# For now, guess DST from 02:00 the first Sunday in November to 03:00
-# the first Sunday on or after January 13. January transitions reportedly
+
+# From Paul Eggert (2019-08-06):
+# Today Raymond Kumar reported the Government of Fiji Gazette Supplement No. 27
+# (2019-08-02) said that Fiji observes DST "commencing at 2.00 am on
+# Sunday, 10 November 2019 and ending at 3.00 am on Sunday, 12 January 2020."
+# For now, guess DST from 02:00 the second Sunday in November to 03:00
+# the first Sunday on or after January 12. January transitions reportedly
# depend on when school terms start. Although the guess is ad hoc, it matches
-# transitions since late 2014 and seems more likely to match future
-# practice than guessing no DST.
+# transitions planned this year and seems more likely to match future practice
+# than guessing no DST.
+# From Michael Deckers (2019-08-06):
+# https://www.laws.gov.fj/LawsAsMade/downloadfile/848
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
@@ -384,8 +389,9 @@ Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
-Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 -
-Rule Fiji 2015 max - Jan Sun>=13 3:00 0 -
+Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
+Rule Fiji 2015 max - Jan Sun>=12 3:00 0 -
+Rule Fiji 2019 max - Nov Sun>=8 2:00 1:00 -
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva
12:00 Fiji +12/+13
@@ -604,10 +610,11 @@ Zone Pacific/Niue -11:19:40 - LMT 1901 # Alofi
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Pacific/Norfolk 11:11:52 - LMT 1901 # Kingston
11:12 - +1112 1951
- 11:30 - +1130 1974 Oct 27 02:00
- 11:30 1:00 +1230 1975 Mar 2 02:00
- 11:30 - +1130 2015 Oct 4 02:00
- 11:00 - +11
+ 11:30 - +1130 1974 Oct 27 02:00s
+ 11:30 1:00 +1230 1975 Mar 2 02:00s
+ 11:30 - +1130 2015 Oct 4 02:00s
+ 11:00 - +11 2019 Jul
+ 11:00 AN +11/+12
# Palau (Belau)
# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -1875,12 +1882,21 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901
# ... at 12.30 am (by legal time in New South Wales) on 4 October 2015.
# http://www.norfolkisland.gov.nf/nia/MediaRelease/Media%20Release%20Norfolk%20Island%20Standard%20Time%20Change.pdf
-# From Paul Eggert (2015-09-23):
+# From Paul Eggert (2019-08-28):
# Transitions before 2015 are from timeanddate.com, which consulted
# the Norfolk Island Museum and the Australian Bureau of Meteorology's
# Norfolk Island station, and found no record of Norfolk observing DST
# other than in 1974/5. See:
# https://www.timeanddate.com/time/australia/norfolk-island.html
+# However, disagree with timeanddate about the 1975-03-02 transition;
+# timeanddate has 02:00 but 02:00s corresponds to what the NSW law said
+# (thanks to Michael Deckers).
+
+# Norfolk started observing Australian DST in spring 2019.
+# From Kyle Czech (2019-08-13):
+# https://www.legislation.gov.au/Details/F2018L01702
+# From Michael Deckers (2019-08-14):
+# https://www.legislation.gov.au/Details/F2019C00010
# Palau
# See commentary for Micronesia.
diff --git a/tz/backzone b/tz/backzone
index 2a54e6c..3ccadd1 100644
--- a/tz/backzone
+++ b/tz/backzone
@@ -507,19 +507,35 @@ Zone Asia/Muscat 3:54:24 - LMT 1920
#Zone Asia/Panaji [not enough info to complete]
# Cambodia
-# From Paul Eggert (2014-10-11):
-# See Asia/Ho_Chi_Minh for the source for most of this data. Also, guess
-# (1) Cambodia reverted to UT +07 on 1945-09-02, when Vietnam did, and
-# (2) they also reverted to +07 on 1953-11-09, the date of independence.
-# These guesses are probably wrong but they're better than guessing no
-# transitions there.
+
+# From an adoptive daughter of the late Cambodian ruler Prince Sihanouk,
+# via Alois Treindl (2019-08-08):
+#
+# King Sihanouk said that, during the Japanese occupation, starting with
+# what historians refer to as "le coup de force du 9 mars 1945", Cambodia,
+# like the entire French Indochina, used Tokyo time zone. After Japan
+# surrendered, 2 September 1945, Cambodia fell under French rule again and
+# adopted Hanoi time zone again.
+#
+# However, on 7 January 1946, Sihanouk and Tioulong managed to obtain a
+# status of "internal autonomy" from the government of Charles de Gaulle.
+# Although many fields remained under the administration of the French
+# (customs, taxes, justice, defence, foreign affairs, etc.), the Cambodian
+# administration was responsible for religious matters and traditional
+# celebrations, which included our calendar and time. The time zone was GMT
+# + 7 and _no_ DST was applied.
+#
+# After Sihanouk and Tioulong achieved full independence, on 9 November 1953,
+# GMT + 7 was maintained.
+
+# From Paul Eggert (2019-08-26):
+# See Asia/Ho_Chi_Minh for the source for most of rest of this data.
+
Zone Asia/Phnom_Penh 6:59:40 - LMT 1906 Jul 1
7:06:30 - PLMT 1911 May 1
7:00 - +07 1942 Dec 31 23:00
8:00 - +08 1945 Mar 14 23:00
9:00 - +09 1945 Sep 2
- 7:00 - +07 1947 Apr 1
- 8:00 - +08 1953 Nov 9
7:00 - +07
# Israel
@@ -646,7 +662,7 @@ Zone Europe/Tiraspol 1:58:32 - LMT 1880
# Liechtenstein
Zone Europe/Vaduz 0:38:04 - LMT 1894 Jun
- 1:00 - CET 1981
+ 1:00 Swiss CE%sT 1981
1:00 EU CE%sT
# Croatia
diff --git a/tz/europe b/tz/europe
index 5dc0397..361b396 100644
--- a/tz/europe
+++ b/tz/europe
@@ -821,11 +821,16 @@ Zone Europe/Andorra 0:06:04 - LMT 1901
# Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV,
# and guess 02:00 for 1945-04-12.
+# From Alois Triendl (2019-07-22):
+# In 1946 the end of DST was on Monday, 7 October 1946, at 3:00 am.
+# Shanks had this right. Source: Die Weltpresse, 5. Oktober 1946, page 5.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Austria 1920 only - Apr 5 2:00s 1:00 S
Rule Austria 1920 only - Sep 13 2:00s 0 -
Rule Austria 1946 only - Apr 14 2:00s 1:00 S
-Rule Austria 1946 1948 - Oct Sun>=1 2:00s 0 -
+Rule Austria 1946 only - Oct 7 2:00s 0 -
+Rule Austria 1947 1948 - Oct Sun>=1 2:00s 0 -
Rule Austria 1947 only - Apr 6 2:00s 1:00 S
Rule Austria 1948 only - Apr 18 2:00s 1:00 S
Rule Austria 1980 only - Apr 6 0:00 1:00 S
@@ -875,15 +880,35 @@ Zone Europe/Minsk 1:50:16 - LMT 1880
# Belgium
#
-# From Paul Eggert (1997-07-02):
+# From Michael Deckers (2019-08-25):
+# The exposition in the web page
+# https://www.bestor.be/wiki/index.php/Voyager_dans_le_temps._L%E2%80%99introduction_de_la_norme_de_Greenwich_en_Belgique
+# gives several contemporary sources from which one can conclude that
+# the switch in Europe/Brussels on 1892-05-01 was from 00:17:30 to 00:00:00.
+#
+# From Paul Eggert (2019-08-28):
+# This quote helps explain the late-1914 situation:
+# In early November 1914, the Germans imposed the time zone used in central
+# Europe and forced the inhabitants to set their watches and public clocks
+# sixty minutes ahead. Many were reluctant to accept "German time" and
+# continued to use "Belgian time" among themselves. Reflecting the spirit of
+# resistance that arose in the population, a song made fun of this change....
+# The song ended:
+# Putting your clock forward
+# Will but hasten the happy hour
+# When we kick out the Boches!
+# See: Pluvinage G. Brussels on German time. Cahiers Bruxellois -
+# Brusselse Cahiers. 2014;XLVI(1E):15-38.
+# https://www.cairn.info/revue-cahiers-bruxellois-2014-1E-page-15.htm
+#
+# Entries from 1914 through 1917 are taken from "De tijd in België"
+# <https://www.astro.oma.be/GENERAL/INFO/nli001a.html>.
# Entries from 1918 through 1991 are taken from:
# Annuaire de L'Observatoire Royal de Belgique,
# Avenue Circulaire, 3, B-1180 BRUXELLES, CLVIIe année, 1991
# (Imprimerie HAYEZ, s.p.r.l., Rue Fin, 4, 1080 BRUXELLES, MCMXC),
# pp 8-9.
-# LMT before 1892 was 0:17:30, according to the official journal of Belgium:
-# Moniteur Belge, Samedi 30 Avril 1892, N.121.
-# Thanks to Pascal Delmoitie for these references.
+# Thanks to Pascal Delmoitie for the 1918/1991 references.
# The 1918 rules are listed for completeness; they apply to unoccupied Belgium.
# Assume Brussels switched to WET in 1918 when the armistice took effect.
#
@@ -928,7 +953,7 @@ Rule Belgium 1946 only - May 19 2:00s 1:00 S
Rule Belgium 1946 only - Oct 7 2:00s 0 -
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Europe/Brussels 0:17:30 - LMT 1880
- 0:17:30 - BMT 1892 May 1 12:00 # Brussels MT
+ 0:17:30 - BMT 1892 May 1 00:17:30
0:00 - WET 1914 Nov 8
1:00 - CET 1916 May 1 0:00
1:00 C-Eur CE%sT 1918 Nov 11 11:00u
@@ -1627,6 +1652,13 @@ Zone Atlantic/Reykjavik -1:28 - LMT 1908
# advanced to sixty minutes later starting at hour two on 1944-04-02; ...
# Starting at hour three on the date 1944-09-17 standard time will be resumed.
#
+# From Alois Triendl (2019-07-02):
+# I spent 6 Euros to buy two archive copies of Il Messaggero, a Roman paper,
+# for 1 and 2 April 1944. The edition of 2 April has this note: "Tonight at 2
+# am, put forward the clock by one hour. Remember that in the night between
+# today and Monday the 'ora legale' will come in force again." That makes it
+# clear that in Rome the change was on Monday, 3 April 1944 at 2 am.
+#
# From Paul Eggert (2016-10-27):
# Go with INRiM for DST rules, except as corrected by Inglis for 1944
# for the Kingdom of Italy. This is consistent with Renzo Baldini.
@@ -1774,15 +1806,10 @@ Zone Europe/Riga 1:36:34 - LMT 1880
# From Paul Eggert (2013-09-09):
# Shanks & Pottenger say Vaduz is like Zurich.
-# From Alois Treindl (2013-09-18):
-# http://www.eliechtensteinensia.li/LIJ/1978/1938-1978/1941.pdf
-# ... confirms on p. 6 that Liechtenstein followed Switzerland in 1941 and 1942.
-# I ... translate only the last two paragraphs:
-# ... during second world war, in the years 1941 and 1942, Liechtenstein
-# introduced daylight saving time, adapting to Switzerland. From 1943 on
-# central European time was in force throughout the year.
-# From a report of the duke's government to the high council,
-# regarding the introduction of a time law, of 31 May 1977.
+# 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
@@ -2490,6 +2517,12 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
# Europe/Kaliningrad covers...
# 39 RU-KGD Kaliningrad Oblast
+# From Paul Eggert (2019-07-25):
+# Although Shanks lists 1945-01-01 as the date for transition from
+# +01/+02 to +02/+03, more likely this is a placeholder. Guess that
+# the transition occurred at 1945-04-10 00:00, which is about when
+# Königsberg surrendered to Soviet troops. (Thanks to Alois Triendl.)
+
# From Paul Eggert (2016-03-18):
# The 1989 transition is from USSR act No. 227 (1989-03-14).
@@ -2506,8 +2539,8 @@ Zone Europe/Bucharest 1:44:24 - LMT 1891 Oct
# Moscow on 1991-11-03, switched to Moscow-1 on 1992-01-19.
Zone Europe/Kaliningrad 1:22:00 - LMT 1893 Apr
- 1:00 C-Eur CE%sT 1945
- 2:00 Poland CE%sT 1946
+ 1:00 C-Eur CE%sT 1945 Apr 10
+ 2:00 Poland EE%sT 1946 Apr 7
3:00 Russia MSK/MSD 1989 Mar 26 2:00s
2:00 Russia EE%sT 2011 Mar 27 2:00s
3:00 - +03 2014 Oct 26 2:00s
@@ -3650,20 +3683,75 @@ Zone Europe/Zurich 0:34:08 - LMT 1853 Jul 16 # See above comment.
# Turkey
+# From Alois Treindl (2019-08-12):
+# http://www.astrolojidergisi.com/yazsaati.htm has researched the time zone
+# history of Turkey, based on newspaper archives and official documents.
+# From Paul Eggert (2019-08-28):
+# That source (Oya Vulaş, "Türkiye'de Yaz Saati Uygulamaları")
+# is used for 1940/1972, where it seems more reliable than our other
+# sources.
+
+# From Kıvanç Yazan (2019-08-12):
+# http://www.resmigazete.gov.tr/arsiv/14539.pdf#page=24
+# 1973-06-03 01:00 -> 02:00, 1973-11-04 02:00 -> 01:00
+#
+# http://www.resmigazete.gov.tr/arsiv/14829.pdf#page=1
+# 1974-03-31 02:00 -> 03:00, 1974-11-03 02:00 -> 01:00
+#
+# http://www.resmigazete.gov.tr/arsiv/15161.pdf#page=1
+# 1975-03-22 02:00 -> 03:00, 1975-11-02 02:00 -> 01:00
+#
+# http://www.resmigazete.gov.tr/arsiv/15535_1.pdf#page=1
+# 1976-03-21 02:00 -> 03:00, 1976-10-31 02:00 -> 01:00
+#
+# http://www.resmigazete.gov.tr/arsiv/15778.pdf#page=5
+# 1977-04-03 02:00 -> 03:00, 1977-10-16 02:00 -> 01:00,
+# 1978-04-02 02:00 -> 03:00 (not applied, see below)
+# 1978-10-15 02:00 -> 01:00 (not applied, see below)
+# 1979-04-01 02:00 -> 03:00 (not applied, see below)
+# 1979-10-14 02:00 -> 01:00 (not applied, see below)
+#
+# http://www.resmigazete.gov.tr/arsiv/16245.pdf#page=17
+# This cancels the previous decision, and repeats it only for 1978.
+# 1978-04-02 02:00 -> 03:00, 1978-10-15 02:00 -> 01:00
+# (not applied due to standard TZ change below)
+#
+# http://www.resmigazete.gov.tr/arsiv/16331.pdf#page=3
+# This decision changes the default longitude for Turkish time zone from 30
+# degrees East to 45 degrees East. This means a standard TZ change, from +2
+# to +3. This is published & applied on 1978-06-29. At that time, Turkey was
+# already on summer time (already on 45E). Hence, this new law just meant an
+# "continuous summer time". Note that this was reversed in a few years.
+#
+# http://www.resmigazete.gov.tr/arsiv/18119_1.pdf#page=1
+# 1983-07-31 02:00 -> 03:00 (note that this jumps TZ to +4)
+# 1983-10-02 02:00 -> 01:00 (back to +3)
+#
+# http://www.resmigazete.gov.tr/arsiv/18561.pdf (page 1 and 34)
+# At this time, Turkey is still on +3 with no spring-forward on early
+# 1984. This decision is published on 10/31/1984. Page 1 declares
+# the decision of reverting the "default longitude change". So the
+# standard time should go back to +3 (30E). And page 34 explains when
+# that will happen: 1984-11-01 02:00 -> 01:00. You can think of this
+# as "end of continuous summer time, change of standard time zone".
+#
+# http://www.resmigazete.gov.tr/arsiv/18713.pdf#page=1
+# 1985-04-20 01:00 -> 02:00, 1985-09-28 02:00 -> 01:00
+
# From Kıvanç Yazan (2016-09-25):
# 1) For 1986-2006, DST started at 01:00 local and ended at 02:00 local, with
# no exceptions.
# 2) 1994's lastSun was overridden with Mar 20 ...
# Here are official papers:
-# http://www.resmigazete.gov.tr/arsiv/19032.pdf - page 2 for 1986
-# http://www.resmigazete.gov.tr/arsiv/19400.pdf - page 4 for 1987
-# http://www.resmigazete.gov.tr/arsiv/19752.pdf - page 15 for 1988
-# http://www.resmigazete.gov.tr/arsiv/20102.pdf - page 6 for 1989
-# http://www.resmigazete.gov.tr/arsiv/20464.pdf - page 1 for 1990 - 1992
-# http://www.resmigazete.gov.tr/arsiv/21531.pdf - page 15 for 1993 - 1995
-# http://www.resmigazete.gov.tr/arsiv/21879.pdf - page 1 for overriding 1994
-# http://www.resmigazete.gov.tr/arsiv/22588.pdf - page 1 for 1996, 1997
-# http://www.resmigazete.gov.tr/arsiv/23286.pdf - page 10 for 1998 - 2000
+# http://www.resmigazete.gov.tr/arsiv/19032.pdf#page=2 for 1986
+# http://www.resmigazete.gov.tr/arsiv/19400.pdf#page=4 for 1987
+# http://www.resmigazete.gov.tr/arsiv/19752.pdf#page=15 for 1988
+# http://www.resmigazete.gov.tr/arsiv/20102.pdf#page=6 for 1989
+# http://www.resmigazete.gov.tr/arsiv/20464.pdf#page=1 for 1990 - 1992
+# http://www.resmigazete.gov.tr/arsiv/21531.pdf#page=15 for 1993 - 1995
+# http://www.resmigazete.gov.tr/arsiv/21879.pdf#page=1 for overriding 1994
+# http://www.resmigazete.gov.tr/arsiv/22588.pdf#page=1 for 1996, 1997
+# http://www.resmigazete.gov.tr/arsiv/23286.pdf#page=10 for 1998 - 2000
# http://www.resmigazete.gov.tr/eskiler/2001/03/20010324.htm#2 - for 2001
# http://www.resmigazete.gov.tr/eskiler/2002/03/20020316.htm#2 - for 2002-2006
# From Paul Eggert (2016-09-25):
@@ -3747,46 +3835,36 @@ Rule Turkey 1922 only - Oct 8 0:00 0 -
Rule Turkey 1924 only - May 13 0:00 1:00 S
Rule Turkey 1924 1925 - Oct 1 0:00 0 -
Rule Turkey 1925 only - May 1 0:00 1:00 S
-Rule Turkey 1940 only - Jun 30 0:00 1:00 S
-Rule Turkey 1940 only - Oct 5 0:00 0 -
+Rule Turkey 1940 only - Jul 1 0:00 1:00 S
+Rule Turkey 1940 only - Oct 6 0:00 0 -
Rule Turkey 1940 only - Dec 1 0:00 1:00 S
Rule Turkey 1941 only - Sep 21 0:00 0 -
Rule Turkey 1942 only - Apr 1 0:00 1:00 S
-# Whitman omits the next two transition and gives 1945 Oct 1;
-# go with Shanks & Pottenger.
-Rule Turkey 1942 only - Nov 1 0:00 0 -
-Rule Turkey 1945 only - Apr 2 0:00 1:00 S
Rule Turkey 1945 only - Oct 8 0:00 0 -
Rule Turkey 1946 only - Jun 1 0:00 1:00 S
Rule Turkey 1946 only - Oct 1 0:00 0 -
Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S
-Rule Turkey 1947 1950 - Oct Sun>=2 0:00 0 -
+Rule Turkey 1947 1951 - Oct Sun>=2 0:00 0 -
Rule Turkey 1949 only - Apr 10 0:00 1:00 S
-Rule Turkey 1950 only - Apr 19 0:00 1:00 S
+Rule Turkey 1950 only - Apr 16 0:00 1:00 S
Rule Turkey 1951 only - Apr 22 0:00 1:00 S
-Rule Turkey 1951 only - Oct 8 0:00 0 -
+# DST for 15 months; unusual but we'll let it pass.
Rule Turkey 1962 only - Jul 15 0:00 1:00 S
-Rule Turkey 1962 only - Oct 8 0:00 0 -
+Rule Turkey 1963 only - Oct 30 0:00 0 -
Rule Turkey 1964 only - May 15 0:00 1:00 S
Rule Turkey 1964 only - Oct 1 0:00 0 -
-Rule Turkey 1970 1972 - May Sun>=2 0:00 1:00 S
-Rule Turkey 1970 1972 - Oct Sun>=2 0:00 0 -
Rule Turkey 1973 only - Jun 3 1:00 1:00 S
-Rule Turkey 1973 only - Nov 4 3:00 0 -
+Rule Turkey 1973 1976 - Oct Sun>=31 2:00 0 -
Rule Turkey 1974 only - Mar 31 2:00 1:00 S
-Rule Turkey 1974 only - Nov 3 5:00 0 -
-Rule Turkey 1975 only - Mar 30 0:00 1:00 S
-Rule Turkey 1975 1976 - Oct lastSun 0:00 0 -
-Rule Turkey 1976 only - Jun 1 0:00 1:00 S
-Rule Turkey 1977 1978 - Apr Sun>=1 0:00 1:00 S
-Rule Turkey 1977 only - Oct 16 0:00 0 -
-Rule Turkey 1979 1980 - Apr Sun>=1 3:00 1:00 S
-Rule Turkey 1979 1982 - Oct Mon>=11 0:00 0 -
-Rule Turkey 1981 1982 - Mar lastSun 3:00 1:00 S
-Rule Turkey 1983 only - Jul 31 0:00 1:00 S
-Rule Turkey 1983 only - Oct 2 0:00 0 -
-Rule Turkey 1985 only - Apr 20 0:00 1:00 S
-Rule Turkey 1985 only - Sep 28 0:00 0 -
+Rule Turkey 1975 only - Mar 22 2:00 1:00 S
+Rule Turkey 1976 only - Mar 21 2:00 1:00 S
+Rule Turkey 1977 1978 - Apr Sun>=1 2:00 1:00 S
+Rule Turkey 1977 1978 - Oct Sun>=15 2:00 0 -
+Rule Turkey 1978 only - Jun 29 0:00 0 -
+Rule Turkey 1983 only - Jul 31 2:00 1:00 S
+Rule Turkey 1983 only - Oct 2 2:00 0 -
+Rule Turkey 1985 only - Apr 20 1:00s 1:00 S
+Rule Turkey 1985 only - Sep 28 1:00s 0 -
Rule Turkey 1986 1993 - Mar lastSun 1:00s 1:00 S
Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
Rule Turkey 1994 only - Mar 20 1:00s 1:00 S
@@ -3795,8 +3873,8 @@ Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Europe/Istanbul 1:55:52 - LMT 1880
1:56:56 - IMT 1910 Oct # Istanbul Mean Time?
- 2:00 Turkey EE%sT 1978 Oct 15
- 3:00 Turkey +03/+04 1985 Apr 20
+ 2:00 Turkey EE%sT 1978 Jun 29
+ 3:00 Turkey +03/+04 1984 Nov 1 2:00
2:00 Turkey EE%sT 2007
2:00 EU EE%sT 2011 Mar 27 1:00u
2:00 - EET 2011 Mar 28 1:00u
diff --git a/tz/leap-seconds.list b/tz/leap-seconds.list
index fd3d192..a1bc5a7 100644
--- a/tz/leap-seconds.list
+++ b/tz/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 C57
-# File expires on: 28 December 2019
+# Updated through IERS Bulletin C58
+# File expires on: 28 June 2020
#
-#@ 3786480000
+#@ 3802291200
#
2272060800 10 # 1 Jan 1972
2287785600 11 # 1 Jul 1972
@@ -252,4 +252,4 @@
# the hash line is also ignored in the
# computation.
#
-#h 83c68138 d3650221 07dbbbcd 11fcc859 ced1106a
+#h f28827d2 f263b6c3 ec0f19eb a3e0dbf0 97f3fa30
diff --git a/tz/leapseconds.awk b/tz/leapseconds.awk
index 242e9d6..1fe5012 100644..100755
--- a/tz/leapseconds.awk
+++ b/tz/leapseconds.awk
@@ -1,43 +1,59 @@
-# Generate the 'leapseconds' file from 'leap-seconds.list'.
+# Generate zic format 'leapseconds' from NIST format 'leap-seconds.list'.
# This file is in the public domain.
+# This program uses awk arithmetic. POSIX requires awk to support
+# exact integer arithmetic only through 10**10, which means for NTP
+# timestamps this program works only to the year 2216, which is the
+# year 1900 plus 10**10 seconds. However, in practice
+# POSIX-conforming awk implementations invariably use IEEE-754 double
+# and so support exact integers through 2**53. By the year 2216,
+# POSIX will almost surely require at least 2**53 for awk, so for NTP
+# timestamps this program should be good until the year 285,428,681
+# (the year 1900 plus 2**53 seconds). By then leap seconds will be
+# long obsolete, as the Earth will likely slow down so much that
+# there will be more than 25 hours per day and so some other scheme
+# will be needed.
+
BEGIN {
print "# Allowance for leap seconds added to each time zone file."
print ""
print "# This file is in the public domain."
print ""
print "# This file is generated automatically from the data in the public-domain"
- print "# leap-seconds.list file, which can be copied from"
+ print "# NIST format leap-seconds.list file, which can be copied from"
print "# <ftp://ftp.nist.gov/pub/time/leap-seconds.list>"
- print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>"
- print "# or <ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list>."
+ print "# or <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>."
print "# For more about leap-seconds.list, please see"
print "# The NTP Timescale and Leap Seconds"
print "# <https://www.eecis.udel.edu/~mills/leap.html>."
print ""
- print "# The International Earth Rotation and Reference Systems Service"
+ print "# The rules for leap seconds are specified in Annex 1 (Time scales) of:"
+ print "# Standard-frequency and time-signal emissions."
+ print "# International Telecommunication Union - Radiocommunication Sector"
+ print "# (ITU-R) Recommendation TF.460-6 (02/2002)"
+ print "# <https://www.itu.int/rec/R-REC-TF.460-6-200202-I/>."
+ print "# The International Earth Rotation and Reference Systems Service (IERS)"
print "# periodically uses leap seconds to keep UTC to within 0.9 s of UT1"
- print "# (which measures the true angular orientation of the earth in space)"
+ print "# (a proxy for Earth's angle in space as measured by astronomers)"
print "# and publishes leap second data in a copyrighted file"
print "# <https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat>."
print "# See: Levine J. Coordinated Universal Time and the leap second."
print "# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995"
print "# <https://ieeexplore.ieee.org/document/7909995>."
print ""
- print "# There were no leap seconds before 1972, because the official mechanism"
- print "# accounting for the discrepancy between atomic time and the earth's rotation"
- print "# did not exist. The first (\"1 Jan 1972\") data line in leap-seconds.list"
+ print "# There were no leap seconds before 1972, as no official mechanism"
+ print "# accounted for the discrepancy between atomic time (TAI) and the earth's"
+ print "# rotation. The first (\"1 Jan 1972\") data line in leap-seconds.list"
print "# does not denote a leap second; it denotes the start of the current definition"
- print"# of UTC."
- print ""
- print "# The correction (+ or -) is made at the given time, so lines"
- print "# will typically look like:"
- print "# Leap YEAR MON DAY 23:59:60 + R/S"
- print "# or"
- print "# Leap YEAR MON DAY 23:59:59 - R/S"
+ print "# of UTC."
print ""
- print "# If the leap second is Rolling (R) the given time is local time (unused here)."
+ print "# All leap-seconds are Stationary (S) at the given UTC time."
+ print "# The correction (+ or -) is made at the given time, so in the unlikely"
+ print "# event of a negative leap second, a line would look like this:"
+ print "# Leap YEAR MON DAY 23:59:59 - S"
+ print "# Typical lines look like this:"
+ print "# Leap YEAR MON DAY 23:59:60 + S"
monthabbr[ 1] = "Jan"
monthabbr[ 2] = "Feb"
@@ -51,45 +67,34 @@ BEGIN {
monthabbr[10] = "Oct"
monthabbr[11] = "Nov"
monthabbr[12] = "Dec"
- for (i in monthabbr) {
- monthnum[monthabbr[i]] = i
- monthlen[i] = 31
- }
- monthlen[2] = 28
- monthlen[4] = monthlen[6] = monthlen[9] = monthlen[11] = 30
+
+ # Strip trailing CR, in case the input has CRLF form a la NIST.
+ RS = "\r?\n"
+
+ sstamp_init()
}
-/^#\tUpdated through/ || /^#\tFile expires on:/ {
+/^#[ \t]*[Uu]pdated through/ || /^#[ \t]*[Ff]ile expires on/ {
last_lines = last_lines $0 "\n"
}
/^#[$][ \t]/ { updated = $2 }
/^#[@][ \t]/ { expires = $2 }
-/^#/ { next }
+/^[ \t]*#/ { next }
{
NTP_timestamp = $1
TAI_minus_UTC = $2
- hash_mark = $3
- one = $4
- month = $5
- year = $6
if (old_TAI_minus_UTC) {
if (old_TAI_minus_UTC < TAI_minus_UTC) {
sign = "23:59:60\t+"
} else {
sign = "23:59:59\t-"
}
- m = monthnum[month] - 1
- if (m == 0) {
- year--;
- m = 12
- }
- month = monthabbr[m]
- day = monthlen[m]
- day += m == 2 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
- printf "Leap\t%s\t%s\t%s\t%s\tS\n", year, month, day, sign
+ sstamp_to_ymdhMs(NTP_timestamp - 1, ss_NTP)
+ printf "Leap\t%d\t%s\t%d\t%s\tS\n", \
+ ss_year, monthabbr[ss_month], ss_mday, sign
}
old_TAI_minus_UTC = TAI_minus_UTC
}
@@ -102,7 +107,117 @@ END {
print ""
print "# POSIX timestamps for the data in this file:"
- printf "#updated %s\n", updated - epoch_minus_NTP
- printf "#expires %s\n", expires - epoch_minus_NTP
+ sstamp_to_ymdhMs(updated, ss_NTP)
+ printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
+ updated - epoch_minus_NTP, \
+ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
+ sstamp_to_ymdhMs(expires, ss_NTP)
+ printf "#expires %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \
+ expires - epoch_minus_NTP, \
+ ss_year, ss_month, ss_mday, ss_hour, ss_min, ss_sec
+
printf "\n%s", last_lines
}
+
+# sstamp_to_ymdhMs - convert seconds timestamp to date and time
+#
+# Call as:
+#
+# sstamp_to_ymdhMs(sstamp, epoch_days)
+#
+# where:
+#
+# sstamp - is the seconds timestamp.
+# epoch_days - is the timestamp epoch in Gregorian days since 1600-03-01.
+# ss_NTP is appropriate for an NTP sstamp.
+#
+# Both arguments should be nonnegative integers.
+# On return, the following variables are set based on sstamp:
+#
+# ss_year - Gregorian calendar year
+# ss_month - month of the year (1-January to 12-December)
+# ss_mday - day of the month (1-31)
+# ss_hour - hour (0-23)
+# ss_min - minute (0-59)
+# ss_sec - second (0-59)
+# ss_wday - day of week (0-Sunday to 6-Saturday)
+#
+# The function sstamp_init should be called prior to using sstamp_to_ymdhMs.
+
+function sstamp_init()
+{
+ # Days in month N, where March is month 0 and January month 10.
+ ss_mon_days[ 0] = 31
+ ss_mon_days[ 1] = 30
+ ss_mon_days[ 2] = 31
+ ss_mon_days[ 3] = 30
+ ss_mon_days[ 4] = 31
+ ss_mon_days[ 5] = 31
+ ss_mon_days[ 6] = 30
+ ss_mon_days[ 7] = 31
+ ss_mon_days[ 8] = 30
+ ss_mon_days[ 9] = 31
+ ss_mon_days[10] = 31
+
+ # Counts of days in a Gregorian year, quad-year, century, and quad-century.
+ ss_year_days = 365
+ ss_quadyear_days = ss_year_days * 4 + 1
+ ss_century_days = ss_quadyear_days * 25 - 1
+ ss_quadcentury_days = ss_century_days * 4 + 1
+
+ # Standard day epochs, suitable for epoch_days.
+ # ss_MJD = 94493
+ # ss_POSIX = 135080
+ ss_NTP = 109513
+}
+
+function sstamp_to_ymdhMs(sstamp, epoch_days, \
+ quadcentury, century, quadyear, year, month, day)
+{
+ ss_hour = int(sstamp / 3600) % 24
+ ss_min = int(sstamp / 60) % 60
+ ss_sec = sstamp % 60
+
+ # Start with a count of days since 1600-03-01 Gregorian.
+ day = epoch_days + int(sstamp / (24 * 60 * 60))
+
+ # Compute a year-month-day date with days of the month numbered
+ # 0-30, months (March-February) numbered 0-11, and years that start
+ # start March 1 and end after the last day of February. A quad-year
+ # starts on March 1 of a year evenly divisible by 4 and ends after
+ # the last day of February 4 years later. A century starts on and
+ # ends before March 1 in years evenly divisible by 100.
+ # A quad-century starts on and ends before March 1 in years divisible
+ # by 400. While the number of days in a quad-century is a constant,
+ # the number of days in each other time period can vary by 1.
+ # Any variation is in the last day of the time period (there might
+ # or might not be a February 29) where it is easy to deal with.
+
+ quadcentury = int(day / ss_quadcentury_days)
+ day -= quadcentury * ss_quadcentury_days
+ ss_wday = (day + 3) % 7
+ century = int(day / ss_century_days)
+ century -= century == 4
+ day -= century * ss_century_days
+ quadyear = int(day / ss_quadyear_days)
+ day -= quadyear * ss_quadyear_days
+ year = int(day / ss_year_days)
+ year -= year == 4
+ day -= year * ss_year_days
+ for (month = 0; month < 11; month++) {
+ if (day < ss_mon_days[month])
+ break
+ day -= ss_mon_days[month]
+ }
+
+ # Convert the date to a conventional day of month (1-31),
+ # month (1-12, January-December) and Gregorian year.
+ ss_mday = day + 1
+ if (month <= 9) {
+ ss_month = month + 3
+ } else {
+ ss_month = month - 9
+ year++
+ }
+ ss_year = 1600 + quadcentury * 400 + century * 100 + quadyear * 4 + year
+}
diff --git a/tz/northamerica b/tz/northamerica
index 9e3577b..8771d96 100644
--- a/tz/northamerica
+++ b/tz/northamerica
@@ -406,6 +406,31 @@ Zone America/New_York -4:56:02 - LMT 1883 Nov 18 12:03:58
# From Paul Eggert (2015-12-25):
# Assume this practice predates 1970, so Fort Pierre can use America/Chicago.
+# From Paul Eggert (2015-04-06):
+# In 1950s Nashville a public clock had dueling faces, one for conservatives
+# and the other for liberals; the two sides didn't agree about the time of day.
+# I haven't found a photo of this clock, nor have I tracked down the TIME
+# magazine report cited below, but here's the story as told by the late
+# American journalist John Seigenthaler, who was there:
+#
+# "The two [newspaper] owners held strongly contrasting political and
+# ideological views. Evans was a New South liberal, Stahlman an Old South
+# conservative, and their two papers frequently clashed editorially, often on
+# the same day.... In the 1950s as the state legislature was grappling with
+# the question of whether to approve daylight saving time for the entire state,
+# TIME magazine reported:
+#
+# "'The Nashville Banner and The Nashville Tennessean rarely agree on anything
+# but the time of day - and last week they couldn't agree on that.'
+#
+# "It was all too true. The clock on the front of the building had two faces -
+# The Tennessean side of the building facing west, the other, east. When it
+# was high noon Banner time, it was 11 a.m. Tennessean time."
+#
+# Seigenthaler J. For 100 years, Tennessean had it covered.
+# The Tennessean 2007-05-11, republished 2015-04-06.
+# https://www.tennessean.com/story/insider/extras/2015/04/06/archives-seigenthaler-for-100-years-the-tennessean-had-it-covered/25348545/
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Chicago 1920 only - Jun 13 2:00 1:00 D
Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
@@ -945,21 +970,21 @@ Zone America/Indiana/Vincennes -5:50:07 - LMT 1883 Nov 18 12:09:53
-5:00 US E%sT
#
# Perry County, Indiana, switched from eastern to central time in April 2006.
+# From Alois Triendl (2019-07-09):
+# The Indianapolis News, Friday 27 October 1967 states that Perry County
+# returned to CST. It went again to EST on 27 April 1969, as documented by the
+# Indianapolis star of Saturday 26 April.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
-Rule Perry 1946 only - Apr lastSun 2:00 1:00 D
-Rule Perry 1946 only - Sep lastSun 2:00 0 S
-Rule Perry 1953 1954 - Apr lastSun 2:00 1:00 D
-Rule Perry 1953 1959 - Sep lastSun 2:00 0 S
Rule Perry 1955 only - May 1 0:00 1:00 D
+Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
-Rule Perry 1960 only - Oct lastSun 2:00 0 S
-Rule Perry 1961 only - Sep lastSun 2:00 0 S
-Rule Perry 1962 1963 - Oct lastSun 2:00 0 S
+Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone America/Indiana/Tell_City -5:47:03 - LMT 1883 Nov 18 12:12:57
-6:00 US C%sT 1946
-6:00 Perry C%sT 1964 Apr 26 2:00
- -5:00 - EST 1969
+ -5:00 - EST 1967 Oct 29 2:00
+ -6:00 US C%sT 1969 Apr 27 2:00
-5:00 US E%sT 1971
-5:00 - EST 2006 Apr 2 2:00
-6:00 US C%sT
@@ -1035,16 +1060,27 @@ Zone America/Indiana/Vevay -5:40:16 - LMT 1883 Nov 18 12:19:44
# clear how this matched civil time in Louisville, so for now continue
# to assume Louisville switched at noon new local time, like New York.
#
+# From Michael Deckers (2019-08-06):
+# From the contemporary source given by Alois Treindl,
+# the switch in Louisville on 1946-04-28 was on 00:01
+# From Paul Eggert (2019-08-26):
+# That source was the Louisville Courier-Journal, 1946-04-27, p 4.
+# Shanks gives 02:00 for all 20th-century transition times in Louisville.
+# Evidently this is wrong for spring 1946. Although also likely wrong
+# for other dates, we have no data.
+#
# Part of Kentucky left its clocks alone in 1974.
# This also includes Clark, Floyd, and Harrison counties in Indiana.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule Louisville 1921 only - May 1 2:00 1:00 D
Rule Louisville 1921 only - Sep 1 2:00 0 S
-Rule Louisville 1941 1961 - Apr lastSun 2:00 1:00 D
+Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
Rule Louisville 1941 only - Sep lastSun 2:00 0 S
+Rule Louisville 1946 only - Apr lastSun 0:01 1:00 D
Rule Louisville 1946 only - Jun 2 2:00 0 S
+Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
-Rule Louisville 1956 1960 - Oct lastSun 2:00 0 S
+Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone America/Kentucky/Louisville -5:43:02 - LMT 1883 Nov 18 12:16:58
-6:00 US C%sT 1921
@@ -1134,18 +1170,19 @@ Zone America/Kentucky/Monticello -5:39:24 - LMT 1883 Nov 18 12:20:36
# one hour in 1914." This change is not in Shanks. We have no more
# info, so omit this for now.
#
-# From Paul Eggert (2017-07-26):
-# Although Shanks says Detroit observed DST in 1967 from 06-14 00:01
-# until 10-29 00:01, I now see multiple reports that this is incorrect.
-# For example, according to a 50-year anniversary report about the 1967
-# Detroit riots and a major-league doubleheader on 1967-07-23, "By the time
-# the last fly ball of the doubleheader settled into the glove of leftfielder
-# Lenny Green, it was after 7 p.m. Detroit did not observe daylight saving
-# time, so light was already starting to fail. Twilight was made even deeper
-# by billowing columns of smoke that ascended in an unbroken wall north of the
-# ballpark." See: Dow B. Detroit '67: As violence unfolded, Tigers played two
-# at home vs. Yankees. Detroit Free Press 2017-07-23.
-# https://www.freep.com/story/sports/mlb/tigers/2017/07/23/detroit-tigers-1967-riot-new-york-yankees/499951001/
+# From Paul Eggert (2019-07-06):
+# Due to a complicated set of legal maneuvers, in 1967 Michigan did
+# not start daylight saving time when the rest of the US did.
+# Instead, it began DST on Jun 14 at 00:01. This was big news:
+# the Detroit Free Press reported it at the top of Page 1 on
+# 1967-06-14, in an article "State Adjusting to Switch to Fast Time"
+# by Gary Blonston, above an article about Thurgood Marshall's
+# confirmation to the US Supreme Court. Although Shanks says Detroit
+# observed DST until 1967-10-29 00:01, that time of day seems to be
+# incorrect, as the Free Press later said DST ended in Michigan at the
+# same time as the rest of the US. Also, although Shanks reports no DST in
+# Detroit in 1968, it did observe DST that year; in the November 1968
+# election Michigan voters narrowly repealed DST, effective 1969.
#
# Most of Michigan observed DST from 1973 on, but was a bit late in 1975.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
@@ -1156,7 +1193,9 @@ Zone America/Detroit -5:32:11 - LMT 1905
-6:00 - CST 1915 May 15 2:00
-5:00 - EST 1942
-5:00 US E%sT 1946
- -5:00 Detroit E%sT 1973
+ -5:00 Detroit E%sT 1967 Jun 14 0:01
+ -5:00 US E%sT 1969
+ -5:00 - EST 1973
-5:00 US E%sT 1975
-5:00 - EST 1975 Apr 27 2:00
-5:00 US E%sT
@@ -1205,6 +1244,12 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
#
# Other sources occasionally used include:
#
+# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94
+# <https://www.jstor.org/stable/1774359>.
+#
+# Pearce C. The Great Daylight Saving Time Controversy.
+# Australian Ebook Publisher. 2017. ISBN 978-1-925516-96-8.
+#
# Edward W. Whitman, World Time Differences,
# Whitman Publishing Co, 2 Niagara Av, Ealing, London (undated),
# which I found in the UCLA library.
@@ -1213,9 +1258,6 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00
# <http://cs.ucla.edu/~eggert/The-Waste-of-Daylight-19th.pdf>
# [PDF] (1914-03)
#
-# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94
-# <https://www.jstor.org/stable/1774359>.
-#
# See the 'europe' file for Greenland.
# Canada
@@ -1857,9 +1899,8 @@ Zone America/Winnipeg -6:28:36 - LMT 1887 Jul 16
# Willett (1914-03) notes that DST "has been in operation ... in the
# City of Moose Jaw, Saskatchewan, for one year."
-# From Paul Eggert (2019-04-26):
-# Chris Pearce's book "The Great Daylight Saving Time Controversy" (2017)
-# says that Regina observed DST in 1914-1917. No dates and times,
+# From Paul Eggert (2019-07-25):
+# Pearce's book says Regina observed DST in 1914-1917. No dates and times,
# unfortunately. It also says that in 1914 Saskatoon observed DST
# from 1 June to 6 July, and that DST was also tried out in Davidson,
# Melfort, and Prince Albert.
@@ -1939,6 +1980,19 @@ Zone America/Swift_Current -7:11:20 - LMT 1905 Sep
# Alberta
+# From Alois Triendl (2019-07-19):
+# There was no DST in Alberta in 1967... Calgary Herald, 29 April 1967.
+# 1969, no DST, from Edmonton Journal 18 April 1969
+#
+# From Paul Eggert (2019-07-25):
+# Pearce's book says that Alberta's 1948 Daylight Saving Act required
+# Mountain Standard Time without DST, and that "anyone who broke that law
+# could be fined up to $25 and costs". There seems to be no record of
+# anybody paying the fine. The law was not changed until an August 1971
+# plebiscite reinstituted DST in 1972. This story is also mentioned in:
+# Boyer JP. Forcing Choice: The Risky Reward of Referendums. Dundum. 2017.
+# ISBN 978-1459739123.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
Rule Edm 1918 only - Oct 27 2:00 0 S
@@ -1951,10 +2005,6 @@ Rule Edm 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Edm 1945 only - Sep lastSun 2:00 0 S
Rule Edm 1947 only - Apr lastSun 2:00 1:00 D
Rule Edm 1947 only - Sep lastSun 2:00 0 S
-Rule Edm 1967 only - Apr lastSun 2:00 1:00 D
-Rule Edm 1967 only - Oct lastSun 2:00 0 S
-Rule Edm 1969 only - Apr lastSun 2:00 1:00 D
-Rule Edm 1969 only - Oct lastSun 2:00 0 S
Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
# Zone NAME STDOFF RULES FORMAT [UNTIL]
@@ -2037,8 +2087,20 @@ Zone America/Edmonton -7:33:52 - LMT 1906 Sep
# been on MST (-0700) like Dawson Creek since it advanced its clocks on
# 2015-03-08.
#
-# From Paul Eggert (2015-09-23):
+# From Paul Eggert (2019-07-25):
# Shanks says Fort Nelson did not observe DST in 1946, unlike Vancouver.
+# Alois Triendl confirmed this on 07-22, citing the 1946-04-27 Vancouver Daily
+# Province. He also cited the 1946-09-28 Victoria Daily Times, which said
+# that Vancouver, Victoria, etc. "change at midnight Saturday"; for now,
+# guess they meant 02:00 Sunday since 02:00 was common practice in Vancouver.
+#
+# Early Vancouver, Volume Four, by Major J.S. Matthews, V.D., 2011 edition
+# says that a 1922 plebiscite adopted DST, but a 1923 plebiscite rejected it.
+# http://former.vancouver.ca/ctyclerk/archives/digitized/EarlyVan/SearchEarlyVan/Vol4pdf/MatthewsEarlyVancouverVol4_DaylightSavings.pdf
+# A catalog entry for a newspaper clipping seems to indicate that Vancouver
+# observed DST in 1941 from 07-07 through 09-27; see
+# https://searcharchives.vancouver.ca/daylight-saving-1918-starts-again-july-7-1941-start-d-s-sept-27-end-of-d-s-1941
+# We have no further details, so omit them for now.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Vanc 1918 only - Apr 14 2:00 1:00 D
@@ -2047,7 +2109,7 @@ Rule Vanc 1942 only - Feb 9 2:00 1:00 W # War
Rule Vanc 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule Vanc 1945 only - Sep 30 2:00 0 S
Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
-Rule Vanc 1946 only - Oct 13 2:00 0 S
+Rule Vanc 1946 only - Sep 29 2:00 0 S
Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
# Zone NAME STDOFF RULES FORMAT [UNTIL]
diff --git a/tz/southamerica b/tz/southamerica
index 397a2cc..9b679c6 100644
--- a/tz/southamerica
+++ b/tz/southamerica
@@ -1230,14 +1230,8 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# From Juan Correa (2016-12-04):
# Magallanes region ... will keep DST (UTC -3) all year round....
# http://www.soychile.cl/Santiago/Sociedad/2016/12/04/433428/Bachelet-firmo-el-decreto-para-establecer-un-horario-unico-para-la-Region-de-Magallanes.aspx
-#
# From Deborah Goldsmith (2017-01-19):
# http://www.diariooficial.interior.gob.cl/publicaciones/2017/01/17/41660/01/1169626.pdf
-# From Paul Eggert (2017-01-19):
-# The above says the Magallanes change expires 2019-05-11 at 24:00,
-# so in theory, they will revert to -04/-03 after that, which means
-# they will switch from -03 to -04 one hour after Santiago does that day.
-# For now, assume that they will not revert.
# From Juan Correa (2018-08-13):
# As of moments ago, the Ministry of Energy in Chile has announced the new
@@ -1258,6 +1252,11 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914
# 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.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
diff --git a/tz/theory.html b/tz/theory.html
index e0b3233..7af7cb2 100644
--- a/tz/theory.html
+++ b/tz/theory.html
@@ -21,6 +21,7 @@
database</a></li>
<li><a href="#functions">Time and date functions</a></li>
<li><a href="#stability">Interface stability</a></li>
+ <li><a href="#leapsec">Leap seconds</a></li>
<li><a href="#calendar">Calendrical issues</a></li>
<li><a href="#planets">Time and time zones on other planets</a></li>
</ul>
@@ -98,8 +99,9 @@ A <code><abbr>tz</abbr></code> timezone corresponds to a ruleset that can
have more than two changes per year, these changes need not merely
flip back and forth between two alternatives, and the rules themselves
can change at times.
-Whether and when a timezone changes its
-clock, and even the timezone's notional base offset from UTC, are variable.
+Whether and when a timezone changes its clock,
+and even the timezone's notional base offset from <abbr>UTC</abbr>,
+are variable.
It does not always make sense to talk about a timezone's
"base offset", which is not necessarily a single number.
</p>
@@ -428,7 +430,7 @@ in decreasing order of importance:
EET/EEST Eastern European,
GST/GDT Guam,
HST/HDT/HWT/HPT Hawaii,
- HKT/HKST Hong Kong,
+ HKT/HKST/HKWT Hong Kong,
IST India,
IST/GMT Irish,
IST/IDT/IDDT Israel,
@@ -972,7 +974,8 @@ an older <code>zic</code>.
that do not fit into the POSIX model.
</li>
<li>
- POSIX requires that systems ignore leap seconds.
+ POSIX requires that <code>time_t</code> clock counts exclude leap
+ seconds.
</li>
<li>
The <code><abbr>tz</abbr></code> code attempts to support all the
@@ -1072,7 +1075,8 @@ an older <code>zic</code>.
where <code>time_t</code> is signed.
</li>
<li>
- These functions can account for leap seconds, thanks to Bradley White.
+ These functions can account for leap seconds;
+ see <a href="#leapsec">Leap seconds</a> below.
</li>
</ul>
@@ -1249,6 +1253,69 @@ between now and the future time.
</section>
<section>
+ <h2 id="leapsec">Leap seconds</h2>
+<p>
+The <code><abbr>tz</abbr></code> code and data can account for leap seconds,
+thanks to code contributed by Bradley White.
+However, the leap second support of this package is rarely used directly
+because POSIX requires leap seconds to be excluded and many
+software packages would mishandle leap seconds if they were present.
+Instead, leap seconds are more commonly handled by occasionally adjusting
+the operating system kernel clock as described in
+<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>
+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
+second support directly.
+</p>
+
+<p>
+The directly-supported mechanism assumes that <code>time_t</code>
+counts of seconds since the POSIX epoch normally include leap seconds,
+as opposed to POSIX <code>time_t</code> counts which exclude leap seconds.
+This modified timescale is converted to <abbr>UTC</abbr>
+at the same point that time zone and DST adjustments are applied &ndash;
+namely, at calls to <code>localtime</code> and analogous functions &ndash;
+and the process is driven by leap second information
+stored in alternate versions of the <abbr>TZif</abbr> files.
+Because a leap second adjustment may be needed even
+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>,
+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,
+embedding or interpreting timestamps in portable
+<a href="https://en.wikipedia.org/wiki/Tar_(computing)"><code>tar</code></a>
+files),
+the application can call the utility functions
+<code>time2posix</code> and <code>posix2time</code>
+included with this package.
+</p>
+
+<p>
+If the POSIX-compatible <abbr>TZif</abbr> file set is installed
+in a directory whose basename is <samp>zoneinfo</samp>, the
+leap-second-aware file set is by default installed in a separate
+directory <samp>zoneinfo-leaps</samp>.
+Although each process can have its own time zone by setting
+its <code>TZ</code> environment variable, there is no support for some
+processes being leap-second aware while other processes are
+POSIX-compatible; the leap-second choice is system-wide.
+So if you configure your kernel to count leap seconds, you should also
+discard <samp>zoneinfo</samp> and rename <samp>zoneinfo-leaps</samp>
+to <samp>zoneinfo</samp>.
+Alternatively, you can install just one set of <abbr>TZif</abbr> files
+in the first place; see the <code>REDO</code> variable in this package's
+<a href="https://en.wikipedia.org/wiki/Makefile">makefile</a>.
+</p>
+</section>
+
+<section>
<h2 id="calendar">Calendrical issues</h2>
<p>
Calendrical issues are a bit out of scope for a time zone database,
diff --git a/tz/tz-link.html b/tz/tz-link.html
index 85fc001..e34ea20 100644
--- a/tz/tz-link.html
+++ b/tz/tz-link.html
@@ -268,7 +268,8 @@ For further information about updates, please see
<a href="https://tools.ietf.org/html/rfc6557">Procedures for
Maintaining the Time Zone Database</a> (Internet <abbr
title="Request For Comments">RFC</abbr> 6557). More detail can be
-found in <a href="theory.html">Theory and pragmatics of the tz code and data</a>.
+found in <a href="theory.html">Theory and pragmatics of the
+<code><abbr>tz</abbr></code> code and data</a>.
<a href="https://a0.github.io/a0-tzmigration/">A0 TimeZone Migration</a>
displays changes between recent <code><abbr>tzdb</abbr></code> versions.
</p>
@@ -301,7 +302,7 @@ These are listed roughly in ascending order of complexity and fanciness.
time and zones.</li>
<li><a href="https://www.timejones.com">TimeJones.com</a>,
<a href="https://timezoneconverterapp.com">Time Zone Converter</a> and
-<a href="https://worldclock.com">The World Clock</a>
+<a href="https://www.worldclock.com">The World Clock</a>
are time zone converters.</li>
<li><a
href="https://twiki.org/cgi-bin/xtra/tzdatepick.html">Date and Time Gateway</a>
@@ -311,7 +312,7 @@ href="http://www.convertit.com/Go/ConvertIt/World_Time/Current_Time.ASP">Current
Time in 1000 Places</a> uses descriptions of the values.</li>
<li><a href="https://timezoneconverterapp.com/">Time Zone Converter</a>
uses a pulldown menu.</li>
-<li><a href="http://home.kpn.nl/vanadovv/time/TZworld.html">Complete
+<li><a href="https://home.kpn.nl/vanadovv/time/TZworld.html">Complete
timezone information for all countries</a> displays tables of DST rules.
<li><a href="https://www.timeanddate.com/worldclock/">The World Clock &ndash;
Worldwide</a> lets you sort zone names and convert times.</li>
@@ -361,6 +362,11 @@ title="JavaScript Object Notation">JSON</abbr></a> format.</li>
<section>
<h2 id="compilers">Other <code><abbr>tz</abbr></code> compilers</h2>
+<p>Although some of these do not fully support
+<code><abbr>tz</abbr></code> data, in recent <code><abbr>tzdb</abbr></code>
+distributions you can generally work around compatibility problems by
+running the command <code>make rearguard_tarballs</code> and compiling
+from the resulting tarballs instead.</p>
<ul>
<li><a href="https://sourceforge.net/projects/vzic/">Vzic</a> is a <a
href="https://en.wikipedia.org/wiki/C_%28programming_language%29">C</a>
@@ -389,9 +395,9 @@ transition in the <code><abbr>tz</abbr></code> database.</li>
<li>The <a href="https://howardhinnant.github.io/date/tz.html">Time Zone
Database Parser</a> is a
<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> parser and
-runtime library that is <a
-href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0355r4.html">moving
-forward</a> for inclusion in
+runtime library with API <a
+href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">adopted
+into the draft standard</a> for
<a href="https://en.wikipedia.org/wiki/C++20">C++20</a>,
the next iteration of the C++ standard.
It is freely available under the
@@ -408,7 +414,7 @@ into an <abbr>ICU</abbr>-specific format.
<abbr>BSD</abbr>-style license.</li>
<li>The <a href="https://github.com/lau/tzdata">Tzdata</a> package for
the <a href="https://elixir-lang.org">Elixir</a> language downloads
-and compiles tz source and exposes <abbr
+and compiles <code><abbr>tz</abbr></code> source and exposes <abbr
title="Application Program Interface">API</abbr>s for use. It is
freely available under the <abbr>MIT</abbr> license.</li>
<li>Java-based compilers and libraries include:
@@ -429,6 +435,11 @@ and time <abbr>API</abbr></a> contains a class
Java 8 <code>java.time</code>, which its users should migrate to once
they can assume Java 8 or later. It is available under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License</a>.</li>
+<li><a href="https://bell-sw.com/pages/iana-updater/">IANA Updater</a>,
+<a href="https://github.com/akashche/tzdbgen">tzdbgen</a>, and <a
+href="https://www.azul.com/products/open-source-tools/ziupdater-time-zone-tool/">ZIUpdater</a>
+are other alternatives to TZUpdater. IANA Updater's license is unclear;
+the others are licensed under the <abbr>GPL</abbr>.</li>
<li><a href="https://github.com/MenoData/Time4A">Time4A: Advanced date and
time library for Android</a> and
<a href="https://github.com/MenoData/Time4J/">Time4J: Advanced date,
@@ -738,7 +749,7 @@ coordinates?</a>" discusses other geolocation possibilities.</li>
<li><a href="http://statoids.com/statoids.html">Administrative
Divisions of Countries ("Statoids")</a> lists
political subdivision data related to time zones.</li>
-<li><a href="http://home.kpn.nl/vanadovv/time/Multizones.html">Time
+<li><a href="https://home.kpn.nl/vanadovv/time/Multizones.html">Time
zone boundaries for multizone countries</a> summarizes legal
boundaries between time zones within countries.</li>
<li><a href="http://manifold.net/info/freestuff.shtml">Manifold Software
@@ -793,9 +804,12 @@ The Bureau of Meteorology publishes a list of <a
href="http://www.bom.gov.au/climate/averages/tables/dst_times.shtml">Implementation
Dates of Daylight Savings Time within Australia</a>.</dd>
<dt>Belgium</dt>
-<dd>The Royal Observatory of Belgium maintains a table of <a
-href="https://www.astro.oma.be/GENERAL/INFO/nli001a.html"
-hreflang="nl">time in Belgium (in Dutch)</a>.</dd>
+<dd>The Royal Observatory of Belgium maintains a table of time in
+Belgium (in
+<a href="https://www.astro.oma.be/GENERAL/INFO/nli001a.html"
+hreflang="nl">Dutch</a> and <a
+href="https://www.astro.oma.be/GENERAL/INFO/fri001a.html"
+hreflang="fr">French</a>).</dd>
<dt>Brazil</dt>
<dd>The Time Service Department of the National Observatory
records <a href="http://pcdsh01.on.br/DecHV.html"
@@ -929,6 +943,10 @@ scales used by each landed mission on Mars.</li>
dedicated not only to leap seconds but to precise time and frequency
in general. It covers the state of the art in amateur timekeeping, and
how the art has progressed over the past few decades.</li>
+<li>The rules for leap seconds are specified in Annex 1 (Time scales) of <a
+href="https://www.itu.int/rec/R-REC-TF.460-6-200202-I/">Standard-frequency
+and time-signal emissions</a>, International Telecommunication Union &ndash;
+Radiocommunication Sector (ITU-R) Recommendation TF.460-6 (02/2002).</li>
<li><a
href="https://www.iers.org/IERS/EN/Publications/Bulletins/bulletins.html"><abbr
title="International Earth Rotation and Reference Systems Service">IERS</abbr>
@@ -945,7 +963,12 @@ sixty seconds. This approach works with the default <code><abbr>tz</abbr></code>
"<code>posix</code>" configuration, is <a
href="http://bk1.ntp.org/ntp-stable/README.leapsmear">supported</a> by
the <abbr>NTP</abbr> reference implementation, and is used by major
-cloud service providers.</li>
+cloud service providers. However, according to
+<a href="https://tools.ietf.org/html/rfc8633#section-3.7.1">&sect;3.7.1 of
+Network Time Protocol Best Current Practices</a>
+(Internet <abbr>RFC</abbr> 8633), leap smearing is not suitable for
+applications requiring accurate UTC or civil time,
+and is intended for use only in single, well-controlled environments.</li>
<li>The <a
href="https://pairlist6.pair.net/mailman/listinfo/leapsecs">Leap
Second Discussion List</a> covers <a
@@ -1036,7 +1059,8 @@ is called "<abbr>GMT</abbr>".</li>
<section>
<h2 id="see-also">See also</h2>
<ul>
-<li><a href="theory.html">Theory and pragmatics of the tz code and data</a></li>
+<li><a href="theory.html">Theory and pragmatics of the
+<code><abbr>tz</abbr></code> code and data</a></li>
<li><a href="tz-art.html">Time and the Arts</a></li>
</ul>
</section>
diff --git a/tz/zic.c b/tz/zic.c
index 8bf5628..a84703a 100644
--- a/tz/zic.c
+++ b/tz/zic.c
@@ -2145,7 +2145,7 @@ writezone(const char *const name, const char *const string, char version,
}
if (pass == 1 && !want_bloat()) {
utcnt = stdcnt = thisleapcnt = 0;
- thistimecnt = - locut - hicut;
+ thistimecnt = - (locut + hicut);
thistypecnt = thischarcnt = 1;
thistimelim = thistimei;
}