You need to enable JavaScript to run this app. Python中datetime.timedelta调用strftime报AttributeError如何修复
优惠活动
大模型
产品
解决方案
定价
更多

Python中datetime.timedelta调用strftime报AttributeError如何修复

错误原因

datetime.timedelta 类型的对象本身没有 strftime 方法,该方法仅属于 datetime.datetime 类,直接对时间差对象调用该方法会触发属性不存在的报错。

修复方法

手动从 timedelta 对象中提取天数、小时、分钟字段即可,具体换算逻辑如下:

  • 直接读取 .days 属性获取完整天数
  • 剩余时长通过 .seconds 属性(总剩余秒数)换算:
    • 小时数 = 总秒数 // 3600
    • 分钟数 = (总秒数 % 3600) // 60
修正后完整代码
import datetime

while True:
    questao = input("Quer calcular em horas ou em dias?\nH ou D: ") 
    if questao == "H":
        salario = float(input("\nQuanto ganha por hora? "))
        preco = float(input("Quanto custa o produto? "))
        divisão = preco/salario
        resultado = datetime.timedelta(hours=divisão)
        break
    elif questao == "D":
        salario = float(input("\nQuanto ganha por dia? "))
        preco = float(input("Quanto custa o produto? "))
        divisão = preco/salario
        resultado = datetime.timedelta(days=divisão)
        break
    else:
        print("Inseriu algo que não existe, tente novamente!\n")
        continue

# 新增字段提取逻辑
dias = resultado.days
horas = resultado.seconds // 3600
minutos = (resultado.seconds % 3600) // 60

print(f"Para comprar um produto de {preco} tem de trabalhar durante {dias} dias, {horas} horas e {minutos} minutos.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:15:00