Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中处理datetime.replace中带有月份的日期错误?_Python_Datetime - Fatal编程技术网

如何在python中处理datetime.replace中带有月份的日期错误?

如何在python中处理datetime.replace中带有月份的日期错误?,python,datetime,Python,Datetime,我有日期对象,如下所示。日期:2025-11-30。如果我使用下面的代码向它添加3个月,它将引发一个异常,如下所示 代码: 例外情况: ValueError: day is out of range for month 据我从错误中理解,这是因为二月并没有第30天 问题:如何将其设置为每月的最后一天!注意:在我的例子中是2月29日或28日。您可以使用object来增加和减少日期 from datetime import timedelta import datetime d = datetim

我有日期对象,如下所示。日期:
2025-11-30
。如果我使用下面的代码向它添加3个月,它将引发一个异常,如下所示

代码:

例外情况:

ValueError: day is out of range for month
据我从错误中理解,这是因为二月并没有第30天

问题:如何将其设置为每月的最后一天!注意:在我的例子中是2月29日或28日。

您可以使用object来增加和减少日期

from datetime import timedelta
import datetime
d = datetime.datetime.today()
new_d = d + timedelta(days=1)
要将日期设置为每月的最后一天,您可以将日期设置为下个月的第一天,然后将其减少1天:

from datetime import timedelta
import datetime
day = datetime.datetime.today()
prev_month_last_day = day.replace(day=1) - timedelta(days=1)

使用日历模块,为什么不使用relativedelta?那么2020-01-31+1个月的结果是什么?你期待什么?同一天x个月后,x*30天后?我真的没有意识到这一点,你能试一下吗?我可以从你的建议中举个例子吗
from datetime import timedelta
import datetime
day = datetime.datetime.today()
prev_month_last_day = day.replace(day=1) - timedelta(days=1)