Python时间减法导致时间元组

时间:2018-08-22 17:21:17

标签: python datetime time

我想减去2倍并将其转换为时间数组。

我咨询了此How to calculate the time interval between two time strings。说明以下代码

from datetime import datetime as dt
import time

print("Time Subtraction")
FMT = '%Y-%m-%d %H:%M:%S'
time_tuple = (2018, 1, 13, 13, 51, 18, 2, 317, 0)
time2_tuple = (2018, 1, 15, 13, 50, 18, 2, 317, 0)
s1 = time.strftime(FMT, time_tuple)
s2 = time.strftime(FMT, time2_tuple)

tdelta = dt.strptime(s2, FMT) - dt.strptime(s1, FMT)
print(tdelta)

结果是:

Time Subtraction
1 day, 23:59:00

但是我想得到一个像这样的元组/打印

tuple = (0,0,1,23,59,0,2,317,0)

我通常使用时间而不是日期时间,所以我不确定该怎么做。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

tdeltadatetime.timedelta对象,因此您正在打印该对象的字符串表示形式。您可以通过对属性执行简单的算术运算(因为它们存储为日数)来获取天数,小时数,分钟数等。

def days_hours_minutes(delta):
    return delta.days, delta.seconds//3600, (delta.seconds//60)%60

您可以根据需要向元组添加尽可能多的这些属性。