Hyperion
Hyperion

Reputation: 2625

Subtract time from datetime.time object

from datetime import datetime, timedelta
current_time = datetime.now().time()
new_time = current_time - timedelta(seconds=10)
>> TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.timedelta'

How can I substract time from a datetime.time object? This code seems working only with datetime.datetime objects.

Upvotes: 9

Views: 9768

Answers (3)

Serenity
Serenity

Reputation: 36635

Get time after datetime subtraction:

from datetime import datetime, timedelta
current_time = datetime.now()
new_time = current_time - timedelta(seconds=10)
new_time = new_time.time()
print new_time

output: 10:56:43.408337

Upvotes: 1

toast
toast

Reputation: 29

Timedelta only works against datetime.datetime and datetime.date objects. But you could always do

current_dt = datetime.datetime.now()
newdt = currentdt - datetime.delta(seconds=10)
new_time = newdt.time()

Upvotes: 2

Sede
Sede

Reputation: 61225

You can just subtract 10 seconds from your current datetime object before returning the time.

current_time = (datetime.now() - timedelta(seconds=10)).time()

Upvotes: 3

Related Questions