Issue #14157: Fix time.strptime failing without a year on February 29th.
Patch by Hynek Schlawack.
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index 0ea4c43..0106e91 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -339,7 +339,7 @@
         raise ValueError("unconverted data remains: %s" %
                           data_string[found.end():])
 
-    year = 1900
+    year = None
     month = day = 1
     hour = minute = second = fraction = 0
     tz = -1
@@ -444,6 +444,10 @@
                     else:
                         tz = value
                         break
+    if year is None and month == 2 and day == 29:
+        year = 1904  # 1904 is first leap year of 20th century
+    elif year is None:
+        year = 1900
     # If we know the week of the year and what day of that week, we can figure
     # out the Julian day of the year.
     if julian == -1 and week_of_year != -1 and weekday != -1: