为什么不能减去两个时间对象?例如,12:00 - 11:00 = 1:00
from datetime import time
time(12,00) - time(11,00) # -> timedelta(hours=1)
好像datetime.time.__sub__
不见了
TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'datetime.time'
你知道为什么吗?
为什么不能减去两个时间对象?例如,12:00 - 11:00 = 1:00
from datetime import time
time(12,00) - time(11,00) # -> timedelta(hours=1)
好像datetime.time.__sub__
不见了
TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'datetime.time'
你知道为什么吗?
time
对象没有日期,例如,可能12:00
(比如说)在星期三,而11:00
在前一个星期二,差异是 25 小时,而不是一个(可以添加或减去 24 的任何倍数)。如果您知道它们实际上在同一日期,只需对它们中的每一个应用任意日期(制作两个datetime
对象),然后您就可以减去它们。例如:
import datetime
def timediff(t1, t2):
td = datetime.date.today()
return datetime.datetime.combine(td, t1) - datetime.datetime.combine(td, t2)
您可以通过以下方式获得您想要的结果
t1 = time(12, 0)
t2 = time(11, 0)
td = timedelta(hours=t1.hour-t2.hour, minutes=t1.minute-t2.minute)