Call time.tzset (if available) just before calculating possible timezones from time.tzname.
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index a08a426..f32acc0 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -284,6 +284,10 @@
         # Set self.__timezone by using time.tzname.
         #
         # Empty string used for matching when timezone is not used/needed.
+        try:
+            time.tzset()
+        except AttributeError:
+            pass
         time_zones = ["UTC", "GMT"]
         if time.daylight:
             time_zones.extend(time.tzname)