缺少datetime.time .__ sub__?

时间:2010-01-16 23:20:10

标签: python datetime time missing-features

为什么不能减去两个时间对象?例如,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'
你知道为什么吗?

2 个答案:

答案 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)