你可以尝试做
import datetime
datetime.datetime(year=year,month=month,day=day,hour=hour)
这将消除诸如> 12,小时> 23,不存在的leap日等问题(在不month年,month = 2的最大值为28,否则为29,其他月份的最大值为30或31天)(错误时引发ValueError异常)
您也可以尝试将其与一些合理的上限/下限进行比较。例如:
datetime.date(year=2000, month=1,day=1) < datetime.datetime(year=year,month=month,day=day,hour=hour) <= datetime.datetime.Now()
相关的上限和下限取决于您的需求。
编辑:请记住,这不会处理某些日期时间的事情,这些事情可能对您的应用程序无效(生日,节假日,营业时间以外的时间等)。