【问题标题】:Calculating Time in Python (datetime.timedelta?)在 Python 中计算时间 (datetime.timedelta?)
【发布时间】:2011-08-15 03:31:27
【问题描述】:

我相信这对你们中的许多人来说是一个明智的选择,但我发现自己对整个 datetime.timedelta 事情感到非常困惑。本质上,我在开始 startTime 时给某些东西打上时间戳,然后在流程结束时打上时间戳 endTime ,我试图在 HH:MM:SS 中获得差异,但没有运气。

当我打印 endTime - startTime 时出现此错误:

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

已编辑以包含最终结果:

startTime = datetime.now()
<... my looping process ...>
endTime = datetime.now()
calcdTime = endTime - startTime
print str(calcdTime)[:-4]

这将输出到:H:MM:SS.MM(从而从 timedelta 中剥离最后 4 个字符

【问题讨论】:

  • datetime.datetimedatetime.date 支持减法,但 datetime.time 不支持。尝试改用datetime.datetime

标签: python datetime


【解决方案1】:

使用datetime 而不是time。没有日期,从另一个中减去一个时间是没有意义的;你不能只是假设他们在同一天并且左操作数在前。

【讨论】:

    【解决方案2】:

    根据您对信息的处理方式,您可能只想使用time.time

    import time
    
    starttime = time.time()
    
    # do stuff
    
    endtime = time.time()
    
    elapsed = endtime - starttime
    print elapsed
    

    这将为您提供以秒为单位的经过时间。这通常比timedelta 更方便。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 2015-01-25
      • 2016-05-22
      • 1970-01-01
      相关资源
      最近更新 更多