Python计算两个日期天数报错TypeError,求助解决方法
问题排查与解决
错误原因
你代码里的date(datetime.today().strftime("%Y,%m,%e"))是问题核心:
strftime()方法返回的是字符串类型(比如"2024,05,20")- 而
date()构造函数需要传入三个独立的整数参数(年、月、日),不是单个字符串,因此触发TypeError。
修复方案
方案1:直接获取当前日期(最简单)
用date.today()直接获取当前本地日期,无需通过datetime中转:
from datetime import date hoy = date.today() # 直接获取当前日期的date对象 otra_fecha = date(2022, 11, 5) delta = hoy - otra_fecha print(delta.days)
方案2:从datetime对象提取date
如果一定要用datetime.today(),可以直接提取它的date属性:
from datetime import datetime, date hoy = datetime.today().date() # 从datetime对象中提取date对象 otra_fecha = date(2022, 11, 5) delta = hoy - otra_fecha print(delta.days)
方案3:字符串解析(针对处理日期字符串的场景)
如果你的需求是从字符串解析日期(比如外部输入的日期字符串),可以用strptime()解析:
from datetime import datetime, date # 模拟从字符串获取日期的场景 fecha_str = datetime.today().strftime("%Y,%m,%d") hoy = datetime.strptime(fecha_str, "%Y,%m,%d").date() otra_fecha = date(2022, 11, 5) delta = hoy - otra_fecha print(delta.days)
内容的提问来源于stack exchange,提问作者paquinho
相关产品推荐
相关产品推荐

