首页 > 解决方案 > datetime : ValueError: day is out of range for month

问题描述

我正在编写的脚本需要两个日期并返回它们之间的持续时间,它使用datetime内置模块。

import datetime
print('Enter the dates [DD/MM/YYYY]!')

date1 = input('Date 1: ')
date2 = input('Date 2: ')

year1 = int(date1[6:])
month1 = int(date1[3:5])
day1 = int(date1[:2])

year2 = int(date2[6:])
month2 = int(date2[3:5])
day2 = int(date2[:2])

date1 = datetime.date(day1, month1, year1)
date2 = datetime.date(day2, month2, year2)

print(date1 - date2)

它一直在向我展示

ValueError: 日期超出月份的范围。

标签: pythonpython-3.xdatetimepython-datetimevalueerror

解决方案


date以错误的顺序提供构造函数的参数。date接受参数, year, month, day, 即:

date1 = datetime.date(year1, month1, day1)
date2 = datetime.date(year2, month2, day2)

推荐阅读