两个时间实例之间的差



我必须从Excel文件中读取两列数据,然后计算每对数据之间的差异,并在Excel的新列中写入答案。读取和写入数据没有问题,但我无法从彼此减去两个datetime.time对象。

我的数据格式为"16:56:20.09",当我试图找到两者之间的差异时,我得到以下错误:

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
你能帮我解决这个问题吗?

你不能减去time实例,因为它们没有明确的顺序;12点和13点有什么区别?一个小时?如果我现在告诉你我指的是昨天12点和明天13点呢?因此出现错误:

>>> from datetime import date, time, datetime
>>> t1 = time(12, 00)
>>> t2 = time(13, 00)
>>> t1 - t2
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    t1 - t2
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

您需要知道时间发生在的哪一天来计算差值。您需要将它们与适当的date组合起来,将它们转换为datetime对象:

>>> dt1 = datetime.combine(date(2015, 7, 14), t1)
>>> dt2 = datetime.combine(date(2015, 7, 16), t2)

现在你可以减去它们:

>>> dt2 - dt1
datetime.timedelta(2, 3600)  # two days, 3,600 seconds

如果它们在同一天(或者你假设它们在同一天),通常是哪一天并不重要,所以你可以这样做,例如

>>> datetime.combine(date.today(), t2) - datetime.combine(date.today(), t1)
datetime.timedelta(0, 3600)  # one hour

* (即。忽略时钟变化,闰秒,…)

相关内容

  • 没有找到相关文章

最新更新