Issue #14157: Fix time.strptime failing without a year on February 29th.
Patch by Hynek Schlawack.
This commit is contained in:
parent
a9494f6c53
commit
1682e5d740
@ -339,7 +339,7 @@ def _strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
|
|||||||
raise ValueError("unconverted data remains: %s" %
|
raise ValueError("unconverted data remains: %s" %
|
||||||
data_string[found.end():])
|
data_string[found.end():])
|
||||||
|
|
||||||
year = 1900
|
year = None
|
||||||
month = day = 1
|
month = day = 1
|
||||||
hour = minute = second = fraction = 0
|
hour = minute = second = fraction = 0
|
||||||
tz = -1
|
tz = -1
|
||||||
@ -444,6 +444,10 @@ def _strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
|
|||||||
else:
|
else:
|
||||||
tz = value
|
tz = value
|
||||||
break
|
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
|
# If we know the week of the year and what day of that week, we can figure
|
||||||
# out the Julian day of the year.
|
# out the Julian day of the year.
|
||||||
if julian == -1 and week_of_year != -1 and weekday != -1:
|
if julian == -1 and week_of_year != -1 and weekday != -1:
|
||||||
|
@ -378,6 +378,9 @@ class StrptimeTests(unittest.TestCase):
|
|||||||
need_escaping = ".^$*+?{}\[]|)("
|
need_escaping = ".^$*+?{}\[]|)("
|
||||||
self.assertTrue(_strptime._strptime_time(need_escaping, need_escaping))
|
self.assertTrue(_strptime._strptime_time(need_escaping, need_escaping))
|
||||||
|
|
||||||
|
def test_feb29_on_leap_year_without_year(self):
|
||||||
|
time.strptime("Feb 29", "%b %d")
|
||||||
|
|
||||||
class Strptime12AMPMTests(unittest.TestCase):
|
class Strptime12AMPMTests(unittest.TestCase):
|
||||||
"""Test a _strptime regression in '%I %p' at 12 noon (12 PM)"""
|
"""Test a _strptime regression in '%I %p' at 12 noon (12 PM)"""
|
||||||
|
|
||||||
|
@ -63,6 +63,9 @@ Core and Builtins
|
|||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #14157: Fix time.strptime failing without a year on February 29th.
|
||||||
|
Patch by Hynek Schlawack.
|
||||||
|
|
||||||
- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
|
- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'.
|
||||||
|
|
||||||
- Issue #14741: Fix missing support for Ellipsis ('...') in parser module.
|
- Issue #14741: Fix missing support for Ellipsis ('...') in parser module.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user