您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中获得两个时间对象之间的差异

如何在Python中获得两个时间对象之间的差异

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
python 2022/1/1 18:33:29 有211人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶