You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:15:39