Python Forum

Full Version: Subtract Minutes from Datetime.Time
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi, I have a datetime.time object such as:

update_Dt.time()
Output:
datetime.time(21, 30)
How do I subtract 5 minutes from the update_Dt.time() object?

I tried:

update_Dt.time() - timedelta(minutes=15)
I got the error message saying that:

Error:
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.timedelta'
Thank you
timedelta works with datetime.datetime, so you need to add it directly to update_Dt and after that use .time() to get time part only (supposing that your update_Dt is a datetime):
(update_Dt - timedelta(minutes=15)).time()
If you have only datetime.time object to start with, you need to convert it to a datetime.datetime, add timedelta and convert back:
In [1]: import datetime

In [2]: my_time = datetime.time(21, 30)

In [3]: (datetime.datetime.combine(datetime.date(1, 1, 1), my_time) - datetime.timedelta(minutes=15)).time()
Out[3]: datetime.time(21, 15)
import datetime as dt
update_Dt=dt.datetime.now()

update_Dt.time()
Out[9]: datetime.time(15, 24, 2, 737247)

newupdate_Dt = update_Dt - dt.timedelta(minutes=15)

newupdate_Dt.time()
Out[11]: datetime.time(15, 9, 2, 737247)