Is there a known special problem for Europe/Kaliningrad? My code and the HowardHinnant date library agree on this transition. The TZ database says: Zone Europe/Kaliningrad 3:00 Russia MSK/MSD 1989 Mar 26 2:00s 2:00 Russia EE%sT 2011 Mar 27 2:00s Rule Russia 1984 1995 - Sep lastSun 2:00s 0 - Rule Russia 1985 2010 - Mar lastSun 2:00s 1:00 S So, on Mar 26, 1989: * at 1:59, Kaliningrad is on UTC+3 (SAVE=0) * at 2:00s (which is identical to 'w' in this case, because we need to use the STDOFF of the transition immediately to the left), Kaliningrad switches to UTC+2+{SAVE} * but the Russia rule also takes effect at 2:00s, so SAVE becomes +1 * so Kaliningrad switches to UTC+2+1, i.e. remains at UTC+3 * Kaliningrad clock stays at 2:00 I think the key here is that both the Zone entry and the Rule entry use the same "2:00s", which are both interpreted using the STDOFF of the transition immediately to the left of the 2:00s. I don't know the internal details of the HowardHinnant's date library, but my code normalizes the various transition times to 'w' time, so the above explanation is only a rough translation of what the code actually does. The other interesting question is what happens on Sept 24, 1989, when it reverts back to STD time at 2:00s. Both my code and HowardHinnant date library seem to correctly convert the 2:00s to 3:00w, and the clock goes from 2:59 -> 2:00. Brian On Tue, Dec 29, 2020 at 11:58 AM Michael H Deckers < michael.h.deckers@googlemail.com> wrote:
On 2020-12-29 19:55, Michael H Deckers wrote:
1991 Mar 31 2:00s
instead of 1989 Mar 26 2:00s
Sorry.
Michael Deckers.