将日期设置为每月31号时出现“ ValueError:日期超出月份范围”

时间:2018-09-08 10:45:40

标签: python-3.x datetime

每当我使用7月31日或10月31日这样的月份作为31的日子时,以下代码给我一个值错误。我想知道为什么会出现值错误。

from datetime import datetime

date_format = "%Y-%m-%d"

def date_to_str(date_obj):
    return date_obj.strftime(date_format)

def str_to_date(str_obj):
    return datetime.strptime(str_obj, date_format)

first_date = str_to_date('2018-07-31')
tenure = 6
dates = [first_date]
for i in range(1, tenure):
    date = dates[i - 1]
    if date.month == 12:
        date = date.replace(year=date.year + 1, month=1)
    else:
        date = date.replace(month=date.month + 1)
    dates.append(date)
print(dates)

0 个答案:

没有答案