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

Python中datetime字符串与datetime实例比较报AttributeError如何解决

错误原因

报错是因为datetime模块的导入方式和实际调用逻辑不匹配:

  • 如果你采用的是from datetime import datetime的导入方式,相当于直接把datetime类导入到当前命名空间,此时直接调用datetime.utcnow()即可,不需要额外加一层.datetime。你代码里写的datetime.datetime.utcnow()相当于在datetime类内部查找名为datetime的属性,该属性不存在因此抛出错误。
  • 如果你采用的是import datetime的导入方式,相当于导入整个datetime模块,此时datetime模块下的datetime类才包含fromisoformat、utcnow等方法,你代码左侧的datetime.fromisoformat写法本身就会报错。

修复方案

有两种可直接使用的修复方式,任选其一即可:

方案1(推荐,代码更简洁)

确认你的导入语句为from datetime import datetime,将比较语句修改为:

if datetime.fromisoformat(item[1]) < datetime.utcnow():

方案2

确认你的导入语句为import datetime,将比较语句修改为:

if datetime.datetime.fromisoformat(item[1]) < datetime.datetime.utcnow():

补充注意事项

  • datetime.fromisoformat方法仅支持Python 3.7及以上版本,如果你使用的是更低版本的Python,需要改用datetime.strptime配合格式字符串解析。
  • 上述代码中两个比较的都是不带时区信息的朴素datetime对象,如果你后续涉及时区转换场景,建议统一给datetime对象添加时区信息,避免出现不符合预期的比较结果。

内容的提问来源于stack exchange,提问作者Towphy PY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:15:04