【问题标题】:How to convert negative datetime.timedelta to positive datetime.timedelta value如何将负 datetime.timedelta 转换为正 datetime.timedelta 值
【发布时间】:2019-10-23 16:06:11
【问题描述】:

所以我有多个时间值,我想相互减去,但在某些情况下我收到负 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 day, 13:01:00 没有 -ve 符号

【问题讨论】:

    标签: python date time timedelta


    【解决方案1】:
    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:])
    

    这是一个简单的解决方法,不确定它是否是您要找的。​​p>

    【讨论】:

    • 别担心,如果这是你要找的,请接受答案
    【解决方案2】:
    time1=timedelta(hours=23,minutes=25,seconds=00)
    time2=timedelta(hours=6,minutes=13,seconds=00)
    
    print('{}'.format(time2 -time1).replace("-",""))
    

    str.replace() 的简单用法就足够了,因为我们不知道哪个 timedelta 会更大。这将仅替换“-”(减号)符号。谢谢。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2016-05-16
    • 2017-01-09
    • 2012-12-20
    • 2013-06-03
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多