On Jun 3, 2021, at 12:41 PM, Steffen Nurpmeso via tz <tz@iana.org> wrote:
Derick Rethans wrote in <alpine.DEB.2.23.453.2106031721460.2842@singlemalt.home.derickrethans.nl>:
FWIW, the issue here isn't about the naming of zones. It is about removing historical data of one country, and replacing it by the historical data from a different country.
You only have a string, either from $TZ or some direct user selection. You link this string to a set of rules. It happens that if you move the mask of the rules back and forth, the number of paths through the set of rules grows or shrinks. As long as you can link name->rules, and, at the time the data is packaged, rules->name, everything is fine, is it? I have no idea how one could end up with Europe/Berlin when the initial TZ was Europe/Stockholm, really. (I have not looked into that for now quite a lot of years, too, however. But as i recall you have by-zone begin/end tuples into the packed data.)
You have the string Europe/Stockholm. Prior to Paul's change, it referred to a tzdb region with the lines Zone Europe/Stockholm 1:12:12 - LMT 1879 Jan 1 1:00:14 - SET 1900 Jan 1 # Swedish Time 1:00 - CET 1916 May 14 23:00 1:00 1:00 CEST 1916 Oct 1 1:00 1:00 - CET 1980 1:00 EU CE%sT After Paul's change, it's an alias for Europe/Berlin: Link Europe/Berlin Europe/Stockholm which is a tzdb region with the lines Zone Europe/Berlin 0:53:28 - LMT 1893 Apr 1:00 C-Eur CE%sT 1945 May 24 2:00 1:00 SovietZone CE%sT 1946 1:00 Germany CE%sT 1980 1:00 EU CE%sT Post-1980, they're the same. Preceding that: Obviously, LMT is different, but anybody who wants to know the offset from (proleptic) UTC for a given location before standard time was established in a region containing that location is best advised to use something other than the tzdb. The C-Eur rules are (most comments elided, we all know where the find the source files): # Older C-Eur rules are for convenience in the tables. # From 1977 on, C-Eur differs from EU only in that C-Eur uses standard time. Rule C-Eur 1916 only - Apr 30 23:00 1:00 S Rule C-Eur 1916 only - Oct 1 1:00 0 - Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 - Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S Rule C-Eur 1942 only - Nov 2 2:00s 0 - Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S Rule C-Eur 1943 only - Oct 4 2:00s 0 - Rule C-Eur 1944 1945 - Apr Mon>=1 2:00s 1:00 S Rule C-Eur 1944 only - Oct 2 2:00s 0 - Rule C-Eur 1945 only - Sep 16 2:00s 0 - Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S Rule C-Eur 1977 only - Sep lastSun 2:00s 0 - Rule C-Eur 1978 only - Oct 1 2:00s 0 - Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 - Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S Rule C-Eur 1996 max - Oct lastSun 2:00s 0 - and the SovietZone rules are: Rule SovietZone 1945 only - May 24 2:00 2:00 M # Midsummer Rule SovietZone 1945 only - Sep 24 3:00 1:00 S Rule SovietZone 1945 only - Nov 18 2:00s 0 - and the Germany rules are: Rule Germany 1946 only - Apr 14 2:00s 1:00 S Rule Germany 1946 only - Oct 7 2:00s 0 - Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 - Rule Germany 1947 only - Apr 6 3:00s 1:00 S Rule Germany 1947 only - May 11 2:00s 2:00 M Rule Germany 1947 only - Jun 29 3:00 1:00 S Rule Germany 1948 only - Apr 18 2:00s 1:00 S Rule Germany 1949 only - Apr 10 2:00s 1:00 S so, for at least some times prior to 1980, using "Europe/Stockholm" before the change results in no summer time changes and using "Europe/Stockholm" after the change results in whatever summer time changes took place in Germany. It *looks* as if, after 1949, there were no such changes until 1980 when, apparently, both Sweden and Germany adopted the EU rules: Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S Rule EU 1977 only - Sep lastSun 1:00u 0 - Rule EU 1978 only - Oct 1 1:00u 0 - Rule EU 1979 1995 - Sep lastSun 1:00u 0 - Rule EU 1981 max - Mar lastSun 1:00u 1:00 S Rule EU 1996 max - Oct lastSun 1:00u 0 - If so, then only pre-1949 times will convert differently; that's the "historical data" in question.