如何将负的datetime.timedelta转换为正的datetime.timedelta值

时间:2019-10-23 16:06:11

标签: python date time timedelta

所以我有多个时间值,我想相互减去,但是在某些情况下,我收到了负的时间增量,我该如何在不更改实际值的情况下将其转换为正的时间值

我尝试使用 abs(),但它更改了实际值


#for example:
time1=timedelta(hours=23,minutes=25,seconds=00)
time2=timedelta(hours=6,minutes=13,seconds=00)

delta_time_value = time2 -time1
print(delta_time_value) #-1 day, 13:01:00 (ANSWER)

我得到的结果是 -1天,13:01:00 但我想要这样的结果: 1天13:01:00 没有-ve号

2 个答案:

答案 0 :(得分:0)

from datetime import timedelta

time1=timedelta(hours=23,minutes=25,seconds=00)
time2=timedelta(hours=6,minutes=13,seconds=00)

delta_time_value = str(time2 - time1)

print(delta_time_value)

if delta_time_value[0] == "-":
  print(delta_time_value[1:])

这是一个简单的解决方法,不确定是否是您想要的。

答案 1 :(得分:0)

time1=timedelta(hours=23,minutes=25,seconds=00)
time2=timedelta(hours=6,minutes=13,seconds=00)

print('{}'.format(time2 -time1).replace("-",""))

简单使用 str.replace() 就足够了,因为我们不知道哪个 timedelta 会更大。这将仅替换“-”(负号)。毕竟不是一些花哨的代码,嗯?