summaryrefslogtreecommitdiff
path: root/Lib/_strptime.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-03-12 10:51:16 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2016-03-12 10:51:16 +0200
commit017bce1a727cdfe027a006457451d49ff61015f1 (patch)
treec73eab62f51b31b3852ab99cf18ef223fd005fc3 /Lib/_strptime.py
parent62d1b6be7bcb1cb03e38d3d08ead4840c83a77dc (diff)
downloadcpython-017bce1a727cdfe027a006457451d49ff61015f1.tar.gz
Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by
Tam?s Bence Gedai.
Diffstat (limited to 'Lib/_strptime.py')
-rw-r--r--Lib/_strptime.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index b8cda769bb..f84227be49 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -462,6 +462,10 @@ def _strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
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.