Reputation: 33
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
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