python - 为什么使用 strptime 时会出现此 datetime 日期错误
问题描述
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 上运行的
上面还提到了程序的导入库。
提前致谢。完整的代码就在上面。
解决方案
您不必将其转换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'))
输出:
32
推荐阅读
- python - 在循环中访问以下两个索引
- python - 如何为seaborn图设置特定标签?
- php - 如何为 php 构建 .json 文件
- powerbi - 基于切片器动态改变 Y 轴大小
- javascript - 如何使用 discord.js 在不和谐中创建斜杠命令
- instagram - instagram api获取具有权限和范围的访问令牌未按预期工作
- rust - 为什么在尝试为所有引用类型实现特征时会出现递归
- angular - 使用 --prod 选项构建时动态加载角度组件的问题
- google-chrome-extension - chrome 扩展 - 如何使用 setTimeout 循环?
- c# - 在 C# 中使用 ECDSA 验证签名,其中签名是由 Java 生成的