日期超出月份的范围:2016 年 2 月 29 日 dateutil - 闰年问题

时间:2021-07-27 22:45:46

标签: python datetime python-dateutil

代码:

from dateutil.parser import parse
dates = parse('February 29,2016').strftime("%Y-%m-%d")
print(dates)

错误:

''' 日期超出月份的范围:2016 年 2 月 29 日 '''

这里似乎没有考虑闰年。谁能帮我以 2016-02-29 的格式检测 2016 年 2 月 29 日

库版本: python-dateutil - 2.8.2

1 个答案:

答案 0 :(得分:1)

这可能不是受支持的日期格式。如果您将其更改为 28 日,您会注意到它捕获的年份是当前年份,而不是 2016 年,因此会出现错误。

parse('February 28,2016')

输出

datetime.datetime(2021, 2, 28, 0, 0)

如果在逗号后面加一个空格,它就成为支持的格式并成功解析。

parse('February 29, 2016')

输出

datetime.datetime(2016, 2, 29, 0, 0)