Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by
Tamás Bence Gedai.
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index b8cda76..f84227b 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -462,6 +462,10 @@
week_starts_Mon = True if week_of_year_start == 0 else False
julian = _calc_julian_from_U_or_W(year, week_of_year, weekday,
week_starts_Mon)
+ if julian <= 0:
+ year -= 1
+ yday = 366 if calendar.isleap(year) else 365
+ julian += yday
# Cannot pre-calculate datetime_date() since can change in Julian
# calculation and thus could have different value for the day of the week
# calculation.