Python 检查日期时间的有效性?

Python 检查日期时间的有效性?,python,datetime,Python,Datetime,我想为datetime对象创建一个setter方法,以便自定义replace方法。这可能吗 例如: datetime = datetime.replace(day = 34) from datetime import datetime from datetime import timedelta datetime(2011, 1, 1) + timedelta(days=34) 这会引发一个错误,因为34不是任何月份的有效天数,但我想做的是将月份增加1,然后减去28,30,或31天。这不会

我想为datetime对象创建一个setter方法,以便自定义
replace
方法。这可能吗

例如:

datetime = datetime.replace(day = 34)
from datetime import datetime
from datetime import timedelta

datetime(2011, 1, 1) + timedelta(days=34)

这会引发一个错误,因为
34
不是任何月份的有效天数,但我想做的是将月份增加
1
,然后减去
28
30
,或
31
天。

这不会直接回答您的问题,但如果您只是尝试增加datetime对象,您可以使用timedelta。例如:

datetime = datetime.replace(day = 34)
from datetime import datetime
from datetime import timedelta

datetime(2011, 1, 1) + timedelta(days=34)

您可以子类化
datetime
并提供自己的
replace
方法的实现。

我不确定是否理解您的需要?!月+1-31天??他希望将
day=34
等同于
day=replacementDay;while(day>daysPerMonth(month)){day=daysPerMonth(month);month+=1;}
。换句话说,将一个无效的天数视为比当前月份更远的未来。伟大的解决方案——除了精确设置天数而不是增加天数之外,其他一切都有效