为什么不能减去两个时间对象?例如,12:00 - 11:00 = 1:00
from datetime import time
time(12,00) - time(11,00) # -> timedelta(hours=1)
似乎缺少datetime.time.__sub__
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'你知道为什么吗?
答案 0 :(得分:6)
time
个对象没有日期,例如,12:00
可能是(假设)在星期三和11:00
在前一个星期二,差异为25小时,不是一个(可以添加或减去24的任何倍数)。如果你知道它们实际上是在同一个日期,只需对它们中的任何一个应用任意日期(制作两个datetime
个对象),然后然后你就可以减去它们。 E.g:
import datetime
def timediff(t1, t2):
td = datetime.date.today()
return datetime.datetime.combine(td, t1) - datetime.datetime.combine(td, t2)
答案 1 :(得分:0)
您可以通过
获得所需的结果t1 = time(12, 0)
t2 = time(11, 0)
td = timedelta(hours=t1.hour-t2.hour, minutes=t1.minute-t2.minute)