【发布时间】:2019-03-25 05:50:08
【问题描述】:
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 上运行的
上面还提到了程序的导入库。
提前致谢。完整的代码就在上面。
【问题讨论】:
-
你从哪里调用这个方法?此外,错误的行号是多少?
-
from datetime import datetime在方法里面,不相关? -
在 Python 3.x 中,您将在方法的第 4 行获得
TypeError: unsupported operand type(s) for -: 'str' and 'str'。 -
你能告诉我为什么你从函数中删除了
self吗?我知道它可以在没有 self 的情况下工作。为什么我使用 no ,因为我正在将此函数调用到代码的其他部分。例如:month_days = self.compute_date_diff(from_date, to_date)[0]
标签: python python-3.x python-2.7 odoo odoo-12