Tim
Tim

Reputation: 33

Making calculations with time using datetime.timedelta

I'm trying to make simple calculations with time using the following code:

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))

However, when i run the code i get the following error:

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

Also using just the following gives an error. I hope anyone knows the solution.

endtime = time + timedelta(minutes = 5)

Upvotes: 1

Views: 78

Answers (1)

RoadRunner
RoadRunner

Reputation: 26315

You've imported datetime.timedelta directly from datetime with:

from datetime import timedelta

So you can just use it straight away:

endtime = time + timedelta(minutes = 5)

You also can't + increment a datetime.time object with timedelta, so you need to keep it as a datetime.datetime object by removing .time():

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

Working Code:

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'>

Another way you could have done this is with just importing datetime as a standard import:

import datetime

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

Incremented time:

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

Using datetime.datetime.strftime.

Upvotes: 1

Related Questions