首页 > 解决方案 > TypeError: 不支持的操作数类型 -: 'str' 和 'str' 传递两个日期时

问题描述

我正在尝试传递两个存储为字符串的日期值以查找日期范围内的天数

start = 2019-09-01
end = 2019-09-10

我试图将上述两个变量传递给下面的表达式并得到以下错误:

date = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days + 1)]

错误:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

更新:

由于错误,不得不将日期列修改为字符串raised unexpected: ValueError('unconverted data remains: T00:00:00')

标签: pythonpython-3.xdate

解决方案


strptime()方法从给定的字符串创建一个datetime对象,该对象可用于将日期字符串转换为日期时间对象,然后,您可以将它们相减以获得它们之间的增量。

https://www.programiz.com/python-programming/datetime/strptime

from datetime import datetime

start = "2019-09-01"
end = "2019-09-10"

dateformat = "%Y-%m-%d"
d0 = datetime.strptime(start, dateformat)
d1 = datetime.strptime(end, dateformat)
delta = d1 - d0
print delta.days

如何计算两个给定日期之间的天数?


推荐阅读