Выполнение расчетов со временем с использованием datetime.timedelta - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь сделать простые вычисления со временем, используя следующий код:

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)

1 Ответ

0 голосов
/ 12 января 2019

Вы импортировали datetime.timedelta напрямую из datetime с:

from datetime import timedelta

Так что вы можете просто использовать его сразу:

endtime = time + timedelta(minutes = 5)

Вы также не можете + увеличивать 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.

...