Skip to main content
 首页 » 编程设计

python之为什么在使用 strptime 时会出现此 datetime 日期错误

2025年05月04日19webabcd

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

当我运行以下代码时出现上述错误。你有什么想法吗?

import datetime 
from datetime import datetime, timedelta 
import babel 
import time 
 
 
date_format = "%Y-%m-%d" 
class HrPayslipEmployees(models.TransientModel): 
    _inherit = 'hr.payslip.employees' 
 
@api.one 
    def compute_date_diff(self, ds, dt): 
        from datetime import datetime 
        d1 = datetime.strptime(ds, "%Y-%m-%d") 
        d1 = str(d1) 
        d2 = datetime.strptime(dt, "%Y-%m-%d") 
        d2 = str(d2) 
        days = (d2 - d1).days + 1 
        if days < 0: 
            days = 0 
        return days 

但相同的代码在 Pythin 2.7 中运行完美,但上面的代码是我在 Python 3.x 上运行的

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

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

请您参考如下方法:

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 转换为字符串来查找日期。