[tz] A simple solution to have zones merge into another zone

Alois Treindl alois at astro.ch
Sat Jun 12 10:34:02 UTC 2021


I assume the main reason why Paul Eggert wants to merge time zones is 
the fact there is less maintenance work, if for example EU rules
change not only regarding DST, but regarding the standard time.

If something like this happens, multiple zones have to be updated.

Some years ago I developed my own  patch to zic.c to make it understand 
the new keyword 'follow'.

That way, I can represent a zone which deviates from a TZ "standard 
zone" before a certain date, and then say 'follow standard zone' at the end
of the zone data.

I have completed that for several countries, for example to represent 
the deviations from Europe/Berlin within parts of Germany before 1949,
or to represent the numerous deviations in France from Europe/Paris.

I attach two files which show the application of the 'follow' keyword.

Of course I will be happy to share the patch to zic.c which enables it 
to process the follow keyword.

As it is now, I apply my patch each time an update of zic.c is published.

If the follow keyword is introduced into the main distribution, it could 
be used for zones like
Europe/Copenhagen
which instead of being eliminated would become

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   1950
                          0    follow Europe/Berlin

The information that Copenhagen is the same as Berlin after 1949 would 
be there,
as well as the original data.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mm.icann.org/pipermail/tz/attachments/20210612/ae59447d/attachment-0001.html>
-------------- next part --------------
# Timezone history of Germany
# compiled by Alois Treindl, August 2011
# assigned to the public domain
# Version 9-jul-2020, includes astro zone numbers azn

# processing this file with the zone info compiler zic requires that zic.c
# is patched with the 'follow rule' patch submitted on 2011 Aug 25.

# Sources: 
# Gabriel, Traite de l'heure dans le Monde, edition 1991
# Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition),
# San Diego: ACS Publications, Inc. (2003).
# Henri Le Corre, Regimes Horaires pour l'Eruope et l'Afrique, 1982
# various German astrological and astronomical publications.

# The tzdata file europe contains only one zone Europe/Berlin for all of Germany.
# It is not the best possible choice for several reasons:
# - Berlin started CET only in 1893, later than several southern states.
# - In 1945, Berlin followed double summertime, together with the Soviet zone
# of occupied Germany. The major part of Germany however, occupied by the
# western allies, did not follow double summer time in 1945.
# Below we use Europe/Munich as a reference zone, and follow rules which point
# to it in other zones. If DST rules for Germany should change after 2011, both
# Europe/Berlin and Europe/Germany/Munich need to be updated. The rest will follow
# automatically.

# Zone Europe/Berlin is good for the following German provinces:
# Brandenburg, Mecklenburg-Vorpommern, Sachsen, Sachsen-Anhalt, Thüringen, Berlin.
# This corresponds to the former German Democratic Republic (DDR) plus all of
# Berlin, i.e. East and West Berlin.

# German province Bavaria
# Munich meridian 11e33 from 1891 Mar 15 until 1892 Apr 1
# started CET on 1892 Apr 1, earlier than norther parts of Germany.
# This zone is used as master for other German history zones to follow.
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Munich	0:46:12 -	LMT	1891 Mar 15 0:00	# azn=134
			0:46:12 -	MMT	1892 Apr 1  0:00
			1:00	C-Eur	CE%sT	1945 Sep 16 2:00	# line 2
			1:00	Germany	CE%sT	1980			# line 3
			1:00	EU	CE%sT				# line 4

# The old province of Baden, which was combined to Baden-Wurttemberg in 1952
# Karlsruhe meridian 8e24 from 1891 Mar 15 until 1892 Apr 1
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Mannheim 0:33:56 -	LMT	1891 Mar 15 0:00	#azn=133
			0:33:36 -	KMT	1892 Apr 1  0:00
			0	follow	Europe/Germany/Munich	# add from line 2

# The old province of Wurttemberg, which was combined to Baden-Wurttemberg in 1952
# Stuttgart meridian 9e11 from 1891 Mar 15 until 1892 Apr 1
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Stuttgart 0:36:44 -	LMT	1891 Mar 15 0:00	#azn=135
			0:36:40 -	SMT	1892 Apr 1  0:00
			0	follow	Europe/Germany/Munich	# add from line 2

# The German provinces Bremen, Hamburg, Hessen, Niedersachsen,
# Schleswig-Holstein and that part of Nordrhein-Westfalen which is east of the
# Rhine.
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Frankfurt 0:34:40 -	LMT	1893 Apr	#azn=136
			0	follow	Europe/Germany/Munich	# add from line 2

# The province of Rheinland-Pfalz, part which is west of the Rhine
# Ludwigshafen meridian 8e26 from 1891 Mar 15 until 1892 Apr 1
# Follows Paris time during French occupation Dec 1918 - Apr 1927
# Gabriel gives 1918 Dec 8 as start of French time, Shanks has 1919 Jan 1,
# follow Gabriel.
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Mainz 0:33:44 -	LMT	1891 Mar 15 0:00	#azn=138
			0:33:44 -	LUT	1892 Apr 1  0:00
			1:00	-	CET	1893 Apr 1  0:00
			1:00    C-Eur	CE%sT	1918 Dec 8  23:00
			0:00	France	WE%sT	1927 Apr 9  23:00
			0	follow	Europe/Germany/Munich	# add from line 2

# The province of Rheinland-Pfalz, part which is east of the Rhine
# Ludwigshafen meridian 8e26 from 1891 Mar 15 until 1892 Apr 1
# Gabriel writes it follows German time even during French occupation 1919 - 1927
Zone	Europe/Germany/Montabaur	0:33:04 -	LMT	1891 Mar 15 0:00	# azn=144
			0:33:44 -	LUT	1892 Apr 1  0:00
			0	follow	Europe/Germany/Munich	# add from line 2

# The province Nordrhein-Westfalen, part which is west of the Rhine.
# It followed Paris time during French occupation 1918 Dec 6 - 1927
Zone	Europe/Germany/Cologne 0:27:56 -	LMT	1893 Apr	# azn=139
			1:00    C-Eur	CE%sT	1918 Dec 6  23:00
			0:00	France	WE%sT	1927 Apr 9  23:00
			0	follow	Europe/Germany/Munich	# add from line 2

# The province Saarland
# It had Paris time during French occupation 1918 - 1925,
# (sources: magazine Merdian 5/1987, p36 ff, Gabriel).
# During the French occupation, many birth registry office are said to have
# ignored the French time, so that an uncertainty remains.
# It followed French time also from Oct 1947, which by then was CET, so that
# it did not observe German DST in 1948 and 1949 (sources: book Lebendige Astrologie,
# Ulrike Voltmer, a local astrologer from Saarland, and Gabriel).
Zone	Europe/Germany/Saarbrucken 0:27:56 -	LMT	1893 Apr	# azn=143
			1:00    C-Eur	CE%sT	1918 Nov 11 23:00
			0:00	France	WE%sT	1925 Jan 31 23:00
			0	follow	Europe/Germany/Munich	# add from line 2

# Part of Germany to the east of the Oder-Neisse line which became part of
# Poland in 1945. Once Poland history is completed, this zone will be replaced
# by a link to the corresponding Poland zone.
# The zone includes also the southern part of Ostpreussen (East Prussia).
# We let if follow Warsaw from 1945 Apr, so that DST begin in 1945 follows Poland.
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Breslau	1:08:00 -	LMT	1893 Apr 1 0:00	# azn=140
			1:00	C-Eur	CE%sT	1945 Apr 
			0	follow	Europe/Warsaw	# add from line 6

# The area of Danzig received a special status in 1918, was reintegrated
# into Germany during the German occupation of Poland in 1939, and went to Poland
# in 1945. Once Poland history is updated, will be place with Poland.
# It includes the towns	Danzig, Zoppot, Tiegenhof, Praust, Neuteich
# We use Danzig and not Polish Gdansk, because tzdata prescribe city names as
# commonly used in English language. 
# We let if follow Warsaw from 1945 Apr, so that DST begin in 1945 follows Poland.
# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
Zone	Europe/Germany/Danzig	1:14:40 -	LMT	1893 Apr 1 0:00	# azn=141
			1:00	C-Eur	CE%sT	1918 Sep 16 3:00
			2:00	Poland	EE%sT	1922 Jun
			1:00	Poland	CE%sT	1940 Jun 23 2:00
			1:00	C-Eur	CE%sT	1945 Apr 
			0	follow	Europe/Warsaw	# add from line 6

# The northern part of German province Ostpreussen (East Prussia) which
# became part of Russia in 1945.
Link Europe/Kaliningrad Europe/Konigsberg	#azn=142

# Busingen exists as a Link Europe/Busingen to Europe/Zurich, but is probably incorrect
# before 1950. We have to assume that Busingen followed Stuttgart, except in 1980.
# It had, like Switzerland, no DST in 1980.
Zone	Europe/Busingen 0:36:44 -	LMT	1891 Mar 15 0:00	#azn=145
			0:36:40 -	SMT	1892 Apr 1  0:00
			1:00	C-Eur	CE%sT	1945 Sep 16 2:00
			1:00	Germany	CE%sT	1950	
			0	follow Europe/Zurich

##Zone	Europe/Warsaw	1:24:00 -	LMT	1880
## 1			1:24:00	-	WMT	1915 Aug  5 # Warsaw Mean Time
## 2			1:00	C-Eur	CE%sT	1918 Sep 16  3:00
## 3			2:00	Poland	EE%sT	1922 Jun
## 4			1:00	Poland	CE%sT	1940 Jun 23  2:00
## 5			1:00	C-Eur	CE%sT	1944 Oct
## 6			1:00	Poland	CE%sT	1977
## 7			1:00	W-Eur	CE%sT	1988
## 8			1:00	EU	CE%sT
-------------- next part --------------
# France historical time zones covering the various local changes do to German occupation
# and Allied forces liberation during WW1 and WW2.
# Some eastern parts of France belonged to Germany between 1870 and 1918.
# This information is in the Public Domain, published by Alois Treindl.
# Astro zone numbers azn have been added on 2-Jul-2020
#
# A zic extension which understands the keyword 'follow' is used.
# We indend to write a converter script which expands the follow lines
# on the source level, so that it will be possible to use unpatche zic.

# Vichy zone
Zone	Europe/France/Marseille	0:21:36 -	LMT	1891 Mar 16	#azn=91
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1942 Nov 12
			1:00    C-Eur   CE%sT   1944 Aug 29
			0	follow	Europe/Paris	# add from line 4
# for table pn92
# switched to CET only on 22 Jun 1940, not on 14 June like Paris
Zone	Europe/France/Bordeaux	-00:02:16 -	LMT	1891 Mar 16	#azn=92
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 22
			1:00    C-Eur   CE%sT   1944 Aug 29
			0	follow	Europe/Paris	# add from line 4

# consists of disconnected areas, northern half of Bretagne with Brest,
# horizontal band with Tours, Jura north of Geneva
# switched to CET only on 20 Jun 1940, not on 14 June like Paris
Zone	Europe/France/Tours	0:02:44 -	LMT	1891 Mar 16	#azn=93
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 20
			1:00    C-Eur   CE%sT   1944 Sep 1
			0	follow	Europe/Paris	# add from line 4

# switched to CET only on 21 Jun 1940, not on 14 June like Paris
Zone	Europe/France/Bourgoin_Jallieu	00:21:06 -	LMT	1891 Mar 16	#azn=94
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 21
			1:00    C-Eur   CE%sT   1944 Aug 23
			0	follow	Europe/Paris	# add from line 4 because 3 is identical

# switched to CET only on 20 Jun 1940, not on 14 June like Paris
Zone	Europe/France/Lyon	-00:02:16 -	LMT	1891 Mar 16	#azn=95
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 20
			1:00    C-Eur   CE%sT   1944 Sep 3
			0	follow	Europe/Paris	# add from line 4

# wide area across France
# switched to CET only on 18 Jun 1940, not on 14 June like Paris
Zone	Europe/France/Nantes	0:02:44 -	LMT	1891 Mar 16	#azn=96
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 18
			1:00    C-Eur   CE%sT   1944 Aug 12
			0	follow	Europe/Paris	# add from line 4 because 3 is identical

# wide area across France
Zone	Europe/France/Pierre_de_Bresse	0:02:44 -	LMT	1891 Mar 16	#azn=97
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 18
			1:00    C-Eur   CE%sT   1944 Sep 5
			0	follow	Europe/Paris	# add from line 4

# Pocket around La Rochelle, liberated only 8 Mai 45
Zone	Europe/France/La_Rochelle	0:02:44 -	LMT	1891 Mar 16	#azn=98
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 22
			1:00    C-Eur   CE%sT   1945 May 9
			0	follow	Europe/Paris	# add from line 4

# wide range Normandie and Loire
Zone	Europe/France/Le_Mans	0:02:44 -	LMT	1891 Mar 16	#azn=99
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 19
			1:00    C-Eur   CE%sT   1944 Aug 8
			0	follow	Europe/Paris	# add from line 4 because 3 is identical

# widely spread to Orleans
Zone	Europe/France/Dijon	0:02:44 -	LMT	1891 Mar 16	#azn=100
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 17
			1:00    C-Eur   CE%sT   1944 Sep 11
			0	follow	Europe/Paris	# add from line 4

Zone	Europe/France/Belfort	0:27:28 -	LMT	1891 Mar 16	#azn=101
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 16
			1:00    C-Eur   CE%sT   1944 Nov 21
			0	follow	Europe/Paris	# add from line 4

Zone	Europe/France/Colmar	0:29:28 -	LMT	1891 Mar 16	#azn=102
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 14
			1:00    C-Eur   CE%sT   1945 Feb 2
			0	follow	Europe/Paris	# add from line 4

Zone	Europe/France/Troyes	0:16:20 -	LMT	1891 Mar 16	#azn=103
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 16
			1:00    C-Eur   CE%sT   1944 Aug 27
			0	follow	Europe/Paris	# add from line 4

# area in Lorainne, west of Nancy, up to Belgian border
Zone	Europe/France/Toul	0:23:36 -	LMT	1891 Mar 16	#azn=104
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			1:00    -	WET	1914 Nov 1
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 14 23
			1:00    C-Eur   CE%sT   1944 Sep 13
			0	follow	Europe/Paris	# add from line 4

# small pocket in Meuse near Belgian border
Zone	Europe/France/Stenay	0:02:44 -	LMT	1891 Mar 16	#azn=105
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			1:00    -	WET	1914 Nov 1
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 14 23
			1:00    C-Eur   CE%sT   1944 Sep 3
			0	follow	Europe/Paris	# add from line 4

# belonged to Germany until 1918-nov-11
Zone	Europe/France/Metz	0:02:44 -	LMT	1883 Apr 1	#azn=106
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 14 23
			1:00    C-Eur   CE%sT   1944 Sep 13
			0	follow	Europe/Paris	# add from line 4

# area in Vosge/Vogesen
Zone	Europe/France/La_Bresse	0:02:44 -	LMT	1891 Mar 16	#azn=107
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 18
			1:00    C-Eur   CE%sT   1944 Nov 21
			0	follow	Europe/Paris	# add from line 4

# belonged to Germany until 1918-nov-11
Zone	Europe/France/Strasbourg	0:02:44 -	LMT	1883 Apr 1	#azn=108
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 16
			1:00    C-Eur   CE%sT   1944 Nov 23
			0	follow	Europe/Paris	# add from line 4

# wide area from Reims across France to Dieppe on coast
Zone	Europe/France/Reims	0:02:44 -	LMT	1891 Mar 16	#azn=109
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 12
			1:00    C-Eur   CE%sT   1944 Aug 31
			0	follow	Europe/Paris	# add from line 4

# pocket in northern Aisne department
Zone	Europe/France/Soissons	0:02:44 -	LMT	1891 Mar 16	#azn=110
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			1:00    -	WET	1914 Nov 1
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 12
			1:00    C-Eur   CE%sT   1944 Aug 30
			0	follow	Europe/Paris	# add from line 4

# area in Oise deprtment
Zone	Europe/France/Noyon	0:02:44 -	LMT	1891 Mar 16	#azn=111
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 9
			1:00    C-Eur   CE%sT   1944 Sep 5
			0	follow	Europe/Paris	# add from line 4

# area in Somme department from Atlantic along Somme river
Zone	Europe/France/Moreuil	0:02:44 -	LMT	1891 Mar 16	#azn=112
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 8
			1:00    C-Eur   CE%sT   1944 Sep 5
			0	follow	Europe/Paris	# add from line 4

Zone	Europe/France/Lille	0:02:44 -	LMT	1891 Mar 16	#azn=113
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			1:00    -	WET	1914 Nov 1
			1:00    C-Eur   CE%sT   1918 Nov 11
			0:00	France	WE%sT	1940 Jun 5
			1:00    C-Eur   CE%sT   1944 Sep 5
			0	follow	Europe/Paris	# add from line 4

# large area Somme department
Zone	Europe/France/Amiens	0:02:44 -	LMT	1891 Mar 16	#azn=114
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 5
			1:00    C-Eur   CE%sT   1944 Sep 1
			0	follow	Europe/Paris	# add from line 4

# wide disconjunct are spread all over France north of Paris
Zone	Europe/France/Rouen	0:02:44 -	LMT	1891 Mar 16	#azn=115
			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
			0:00	France	WE%sT	1940 Jun 14
			1:00    C-Eur   CE%sT   1944 Sep 1
			0	follow	Europe/Paris	# add from line 4

##Zone	Europe/Paris	0:09:21 -	LMT	1891 Mar 16
## 1			0:09:21	-	PMT	1911 Mar 11 # Paris Mean Time
## 2			0:00	France	WE%sT	1940 Jun 14 23:00
## 3			1:00	C-Eur	CE%sT	1944 Aug 25
## 4			0:00	France	WE%sT	1945 Sep 16  3:00
## 5			1:00	France	CE%sT	1977
## 6			1:00	EU	CE%sT
#
# determine into which line the follow jumps


More information about the tz mailing list