【问题标题】:Getting the following error for datetime [duplicate]获取日期时间的以下错误[重复]
【发布时间】:2018-02-22 19:09:19
【问题描述】:

我有以下导入

from datetime import datetime, timedelta
dt = datetime.fromtimestamp(int(key))
dt_formatted = dt.strftime('%H:%M:%S')
time_source.append(dt_formatted)
start_time = time_source[0]
t_end = start_time + datetime.timedelta(minutes=60)

收到此错误, AttributeError: type object 'datetime.datetime' 没有属性 'timedelta'

【问题讨论】:

    标签: python datetime


    【解决方案1】:

    您将datetime 对象转换为字符串,然后尝试将timedelta 添加到该字符串。

    在添加 60 分钟之前转换回 datetime 对象,你就没有问题了。

    最好还是不要转换为字符串 (strftime),除非你真的必须这样做。

    from datetime import datetime, timedelta
    
    time_source = []
    
    now = datetime.now()  # 2018-02-22 19:15:03
    
    dt_formatted = now.strftime('%H:%M:%S')
    time_source.append(dt_formatted)
    start_time = time_source[0]
    
    t_end = datetime.strptime(start_time, '%H:%M:%S') + timedelta(minutes=60)
    # 1900-01-01 20:15:03
    

    【讨论】:

      【解决方案2】:

      您在import 语句中使用了from。现在,您不要使用点表示法 (datetime.timedelta),因为它指的是 datetime.datetime

      这是你的新代码:

      from datetime import datetime, timedelta`
      dt = datetime.fromtimestamp (int (key))
      dt_formatted = dt.strftime ("%H:%M:%S")
      time_source.append (dt_formatted) 
      start_time = time_source [0] 
      t_end = start_time + timedelta (minutes = 60)
      

      【讨论】:

      • 我之前尝试过,但我得到了这个错误:t_end = start_time + timedelta(minutes=60) TypeError: must be str, not datetime.timedelta
      猜你喜欢
      • 2016-08-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多