为什么在使用strptim时会出现这个datetime日期错误

2024-09-27 15:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

TypeError: strptime() argument 1 must be str, not datetime.date

当我运行下面的代码时,我得到了上面的错误。你知道这件事吗?在

^{pr2}$

但是同样的代码在pythin2.7中也能很好地工作,但是上面的代码是在python3.x上运行的

上面还提到了为该程序导入的库。在

提前谢谢。完整的代码就在上面。在


Tags: 代码程序datetimedate错误notbeargument
3条回答
import datetime
from datetime import datetime, timedelta


date_format = "%Y-%m-%d"


def compute_date_diff( ds, dt):
    d1 = datetime.strptime(ds, "%Y-%m-%d")
    d2 = datetime.strptime(dt, "%Y-%m-%d")
    days = (d2 - d1).days + 1
    if days < 0:
        days = 0
    return days
print(compute_date_diff("2019-03-24","2019-03-25"))

这在Python3中工作得很好。不需要将d1和d2转换为字符串来查找天数。在

您不必将date转换为str

在Python 3.x中

from datetime import datetime

def compute_date_diff(ds, dt):
    d1 = datetime.strptime(ds, "%Y-%m-%d")
    d2 = datetime.strptime(dt, "%Y-%m-%d")
    days = (d2 - d1).days + 1
    if days < 0:
        days = 0
    return days

print(compute_date_diff('2019-01-01', '2019-02-01'))

输出

^{pr2}$

让我在奥多的背景下回答。使用this commit时,旧代码不再工作。因为在此之前,在Odoo中,DateDatetime字段的值是字符串。在这个提交之后,您将得到pythondatetime.dateresp。datetime.datetime对象。在

所以只要使用这些对象,如果不需要,不要解析成字符串或从字符串中解析。在

相关问题 更多 >

    热门问题