Okay, now I have done my own investigations and found following answer: If the switch (expressed as UNTIL-time in a ZONE-line) is before any dst-rule valid for given UNTIL-related year then we have to apply the previous daylight saving offset valid at that time (previous means before the switch). The southern hemisphere matters here, see America/Argentina/Jujuy in 1992. However, there is one exception. If there are no dst-rules at all in given year then we have to apply zero-offset (consistent with Asia/Gaza for the 1967 switch). I wished these tricky details were documented anywhere and I hope it helps for anyone else. -------- Weitergeleitete Nachricht -------- Betreff: Re: [english 83%] Re: [tz] historic Oslo times Datum: Sat, 07 Mar 2015 01:49:07 +0100 Von: Meno Hochschild <mhochschild@gmx.de> An: Paul Eggert <eggert@cs.ucla.edu> Thank you very much for clarification. Is this rule/algorithm/procedure documented anywhere? So for Oslo we have a rule BEFORE the switch which gives us the dst-offset of +01:00 to be applied. And what will happen if the rule in question taking effect happens AFTER the time of switch (as expressed in UNTIL-term) meaning: for given year there is no rule before switch? Is it okay to assume daylight-savings zero in this edge case? ls this assumption also valid for southern hemisphere? Am 06.03.2015 um 22:29 schrieb Paul Eggert:
Meno Hochschild wrote:
The rule for 1940 cannot be applied because 1st of Apr is clearly before the UNTIL-date of zone line in question when changing from Norway-rule to C-Eur-rule.
When a zone switches from one set of rules to another, the rule in effect at the time of the switch is the rule that governs, even if this rule first took effect before the switch. So the rule you mention can be applied, and the data for Europe/Oslo should be OK. You can verify this by running the command "zdump -v Europe/Oslo" and verifying that all the transitions are as expected. Here are the war-year transitions that I observed that way:
Sat Aug 10 21:59:59 1940 UT = Sat Aug 10 22:59:59 1940 CET isdst=0 gmtoff=3600 Sat Aug 10 22:00:00 1940 UT = Sun Aug 11 00:00:00 1940 CEST isdst=1 gmtoff=7200 Mon Nov 2 00:59:59 1942 UT = Mon Nov 2 02:59:59 1942 CEST isdst=1 gmtoff=7200 Mon Nov 2 01:00:00 1942 UT = Mon Nov 2 02:00:00 1942 CET isdst=0 gmtoff=3600 Mon Mar 29 00:59:59 1943 UT = Mon Mar 29 01:59:59 1943 CET isdst=0 gmtoff=3600 Mon Mar 29 01:00:00 1943 UT = Mon Mar 29 03:00:00 1943 CEST isdst=1 gmtoff=7200 Mon Oct 4 00:59:59 1943 UT = Mon Oct 4 02:59:59 1943 CEST isdst=1 gmtoff=7200 Mon Oct 4 01:00:00 1943 UT = Mon Oct 4 02:00:00 1943 CET isdst=0 gmtoff=3600 Mon Apr 3 00:59:59 1944 UT = Mon Apr 3 01:59:59 1944 CET isdst=0 gmtoff=3600 Mon Apr 3 01:00:00 1944 UT = Mon Apr 3 03:00:00 1944 CEST isdst=1 gmtoff=7200 Mon Oct 2 00:59:59 1944 UT = Mon Oct 2 02:59:59 1944 CEST isdst=1 gmtoff=7200 Mon Oct 2 01:00:00 1944 UT = Mon Oct 2 02:00:00 1944 CET isdst=0 gmtoff=3600 Mon Apr 2 00:59:59 1945 UT = Mon Apr 2 01:59:59 1945 CET isdst=0 gmtoff=3600 Mon Apr 2 01:00:00 1945 UT = Mon Apr 2 03:00:00 1945 CEST isdst=1 gmtoff=7200 Mon Oct 1 00:59:59 1945 UT = Mon Oct 1 02:59:59 1945 CEST isdst=1 gmtoff=7200 Mon Oct 1 01:00:00 1945 UT = Mon Oct 1 02:00:00 1945 CET isdst=0 gmtoff=3600