【问题标题】:Making calculations with time using datetime.timedelta使用 datetime.timedelta 进行时间计算
【发布时间】:2019-01-12 12:12:56
【问题描述】:

我正在尝试使用以下代码对时间进行简单的计算:

from datetime import datetime
from datetime import timedelta

time = datetime.strptime('12:00:00', '%H:%M:%S').time()
endtime = time + datetime.timedelta(minutes = 5)
print(type(endtime))

但是,当我运行代码时,我收到以下错误:

AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'

仅使用以下内容也会出错。我希望有人知道解决方案。

endtime = time + timedelta(minutes = 5)

【问题讨论】:

  • 就我个人而言,我总是使用 import datetime as dt 来 a) 不必一直键入 datetime 和 b) 不要混淆 datetime 是指模块还是类
  • 删除.time()并使用endtime = time + timedelta(minutes = 5)

标签: python python-datetime timedelta


【解决方案1】:

您已经直接从datetime 导入了datetime.timedelta

from datetime import timedelta

所以你可以直接使用它:

endtime = time + timedelta(minutes = 5)

您也不能+timedelta 增加datetime.time 对象,因此您需要通过删除.time() 将其保留为datetime.datetime 对象:

 time = datetime.strptime('12:00:00', '%H:%M:%S')

工作代码:

from datetime import datetime
from datetime import timedelta

time = datetime.strptime('12:00:00', '%H:%M:%S')
endtime = time + timedelta(minutes = 5)
print(type(endtime))
# <class 'datetime.datetime'>

您可以这样做的另一种方法是将datetime 作为标准导入:

import datetime

time = datetime.datetime.strptime('12:00:00', '%H:%M:%S')
endtime = time + datetime.timedelta(minutes = 5)
print(type(endtime))
# # <class 'datetime.datetime'>

增加的时间:

print(endtime.strftime('%H:%M:%S'))
# 12:05:00

使用datetime.datetime.strftime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    相关资源
    最近更新 更多