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