They are the same time zone - "Europe/Berlin" .
When you print them, the output includes the abbreviation and bias that apply at that particular point in time.
If you look at tz data sources , you will see:
# Zone NAME GMTOFF RULES FORMAT [UNTIL] 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
Thus, it would seem that when the time zone did not localize the date and time, it simply uses the first record.
It would also seem that pytz does not save an additional 28 seconds from the initial local average time deviation, but it does not matter if you do not work with dates in Berlin until April 1893.
source share