datetime.time
出于不支持对象比较的原因,该类不支持对象减法,即因为其对象可能未定义其tzinfo
属性:
时间之间的比较,其中当a在时间b之前时,a被认为小于b。如果一个比较项是幼稚的而另一个比较项是知道的,则会引发TypeError。如果两个比较器都知道并且具有相同的tzinfo属性,则将忽略公共tzinfo属性并比较基准时间。如果两个比较器都知道并且具有不同的tzinfo属性,则首先通过减去其UTC偏移量(从self.utcoffset()获得)来调整比较器。为了阻止混合类型比较回退到按对象地址进行的默认比较,将时间对象与其他类型的对象进行比较时,除非比较==或!=,否则将引发TypeError。后面的情况分别返回False或True。
您应使用datetime.datetime
其中包括日期和时间的内容。
如果两次是同一天,则可以使用告诉python日期是今天,date.today()
并将日期和时间结合起来datetime.combine
。
现在您有了日期时间,您可以执行减法,这将返回一个datetime.timedelta实例,该实例total_seconds()
将返回秒数(其中float
包括微秒信息的秒数)。因此,将其乘以10 6即可得到微秒。
from datetime import datetime, date, time
x = time(9, 30, 30, 0)
y = time(9, 30, 31, 100000)
diff = datetime.combine(date.today(), y) - datetime.combine(date.today(), x)
print diff.total_seconds() * (10 ** 6) # 1100000.0
您也可以只使用timedeltas:
from datetime import timedelta
x = timedelta(hours=9, minutes=30, seconds=30)
y = timedelta(hours=9, minutes=30, seconds=31, microseconds=100000)
print (y - x).total_seconds() * (10 ** 6) # 1100000.0