类型错误:不支持的操作数类型 -:"str"和"datetime.timedelta"



我有一个方法,它将日期返回为";2022年8月12日";如何将其更改为datetime以与datetime.timedelta(天=10(连接

def date_return():
return date

date_return() + datetime.timedelta(days=10) 

throws TypeError:-:"str"one_answers"datetime.timedelta"的操作数类型不受支持

您需要将字符串转换为datetime对象。Python不知道任何关于日期的信息,因为它是一个字符串。

>>> import datetime
>>> datetime.datetime.strptime('August 12, 2022', '%B %d, %Y')
datetime.datetime(2022, 8, 12, 0, 0)
>>> datetime.datetime.strptime('August 12, 2022', '%B %d, %Y') + datetime.timedelta(days=10)
datetime.datetime(2022, 8, 22, 0, 0)

日期的日期时间字符串格式代码:

%B  Full month name.                            January, February,...
%d  Day of the month as a zero-padded decimal.  01, 02, ..., 31
%Y  Year with century as a decimal number.      2013, 2019 etc.

date_return()返回一个字符串,因此您可以使用它来代替上面的硬编码字符串:

datetime.datetime.strptime(date_return(), '%B %d, %Y') + datetime.timedelta(days=10)

Python解释器告诉您,正在尝试将字符串(str(与datetime.timedelta对象连接。通常,只能将字符串与字符串连接起来。您要做的是将timedelta对象转换为字符串,然后将其与字符串连接。

在您的情况下,它将是:

date_return() + str(datetime.timedelta(days=10))

最新更新