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
>
>