Python 3 - 计算两个时间值之间的差异

时间:2017-10-18 17:09:30

标签: python python-3.x

我有两个值。我认为某个操作将要花费的预期时间,以及完成该任务实际花费的时间值。在搜索解决方案时,我发现这个代码工作正常,直到任务花费的时间比预期的要长。

Expected = '00:00:20'
Actual = '00:00:25'

FMT = '%H:%M:%S'

Difference = datetime.strptime(Expected, FMT) - datetime.strptime(Actual, FMT)

print(Difference)

打印

-1 day, 23:59:55

所以我想知道如何将结果显示为-00:00:05而不是?

1 个答案:

答案 0 :(得分:6)

只需3步即可完成:

  1. 步骤:比较2个时间值
  2. 步骤:从较大的一个
  3. 中减去较小的一个
  4. 步骤:如果您需要在2.步骤中反转数字的顺序,那么您将有一个负时间,否则差异是正的。
  5. 编辑: 整个代码如下所示:

    from datetime import datetime
    Expected = '00:00:20'
    Actual = '00:00:25'
    
    FMT = '%H:%M:%S'
    
    time1=datetime.strptime(Expected, FMT)
    time2=datetime.strptime(Actual, FMT)
    rev=time1<time2
    Difference =  time2 - time1 if rev else time1-time2
    print("-" if rev else "",Difference,sep="")