Я пытаюсь сделать простые вычисления со временем, используя следующий код:
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)
Вы импортировали datetime.timedelta
напрямую из datetime
с помощью:
from datetime import timedelta
Так что вы можете просто использовать его прямо сейчас:
endtime = time + timedelta(minutes = 5)
Вы также не можете +
timedelta
объект datetime.time
с помощью timedelta
, поэтому вам нужно сохранить его как объект datetime.datetime
, удалив .time()
:
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
.
import datetime as dt
для a) за исключением того, что нет необходимости вводитьdatetime
все время и b) чтобы не запутаться в том, относится лиdatetime
к модулю или классу.time()
и используйтеendtime = time + timedelta(minutes = 5)
.