【问题标题】:Subtract Two DateTime objects - Python [duplicate]减去两个 DateTime 对象 - Python [重复]
【发布时间】:2015-11-19 14:32:27
【问题描述】:

我有两个这样的日期时间对象

a = first date time object
b = second date time object

然后

c = a - b

现在我想比较 c 并检查差异是否大于 3 小时,所以我有一个名为 three_hours 的时间对象

three_hours = datetime.time(3,0)
if c >= three_hours:
     #do stuff

但我收到一条错误消息,提示无法将 datetime.teimdelta 与 datetime.time 进行比较

我的问题不同,因为我还想比较减去的时间,而不仅仅是得到差异!

如何将它们转换为正确的格式,以便检查是否已过 3 小时?

感谢您的帮助

【问题讨论】:

标签: python datetime time


【解决方案1】:

您也可以只与另一个 timedelta 对象进行比较

import datetime
if c >= datetime.timedelta(hours=3):
   #do something

【讨论】:

    【解决方案2】:

    你可以这样做

    three_hours = 3600*3 # in seconds
    
    if c.total_seconds() >= three_hours:
        # do stuff
    

    【讨论】:

      【解决方案3】:

      当你在 python 中减去两个 datetime 对象时,你会得到一个 datetime.timedelta 对象。然后,您可以获得该 timedelta 对象的 total_seconds() 并检查它是否大于 3*3600 ,这是 3 小时的秒数。示例 -

      >>> a = datetime.datetime.now()
      >>> b = datetime.datetime(2015,8,25,0,0,0,0)
      >>> c = a - b
      >>> c.total_seconds()
      87062.729491
      >>> c.total_seconds() > 3*3600
      True
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-02
        • 2018-07-02
        • 1970-01-01
        • 2012-01-01
        相关资源
        最近更新 更多