我有一个方法,它将日期返回为";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))