Python 有人能帮我计算两张日期戳的时差吗?

Python 有人能帮我计算两张日期戳的时差吗?,python,datetime,timestamp,difference,Python,Datetime,Timestamp,Difference,我的日期格式如下: (u'Task',u'2017-01-06T02:23:44.000-0500')。。第一阶段 (u'Task',u'2017-01-06T05:27:10.000-0500')。。第二阶段 (u'Task',u'2017-01-10T14:42:44.000-0500')…第二阶段 我必须计算每个阶段之间的时差 我正在使用这个(我知道这是不正确的:-() 它返回一个格式不匹配错误 有人能帮我找到在第1阶段和第2阶段之间花费的时间吗?我必须递归地计算这个时间,主要是,正如Pa

我的日期格式如下: (u'Task',u'2017-01-06T02:23:44.000-0500')。。第一阶段 (u'Task',u'2017-01-06T05:27:10.000-0500')。。第二阶段 (u'Task',u'2017-01-10T14:42:44.000-0500')…第二阶段

我必须计算每个阶段之间的时差 我正在使用这个(我知道这是不正确的:-()

它返回一个格式不匹配错误


有人能帮我找到在第1阶段和第2阶段之间花费的时间吗?我必须递归地计算这个时间,主要是,正如Patrick所写的,格式字符串是错误的。你可以检查格式字符串是如何编写的。另外,变量
d1
d2
在声明之前就被使用了,而日期的减法通常是有效的以
difference=older\u date-newer\u date
的方式。简而言之:

import datetime as dt

date_format = "%Y-%m-%d %H:%M:%S"

d1=('2017-01-06T02:23:44.000-0500')
d2=('2017-01-19T17:30:21.000-0500')

x1 = d1.replace('T', ' ').split('.')[0]
x2 = d2.replace('T', ' ').split('.')[0]

start_dt = dt.datetime.strptime(x1, date_format)
end_dt = dt.datetime.strptime(x2, date_format)

x = end_dt - start_dt
print(x)
印刷品:

13 days, 15:06:37
2017-01-06T02:23:44.000-0500=>20170106022344
2017-01-19T17:30:21.000-0500=>20170119173021
13 days, 15:06:37

x1
x2
的拆分是个人喜好,在索引处进行拆分只会要求在格式更改期间或使用不同的区域设置时对代码进行拆分。

您的格式字符串应为
'%Y-%m-%d%H%m%S'
。 因此:


您可以这样做:

import datetime as dt

# parses the string in Format 'yyyyMMddHHMMSS'
def parse(s): 
    return dt.datetime.strptime(s,"%Y%m%d%H%M%S")

# removes all T-: from string, leaves to . for split, returns only left part of split                     
def reformat(s): 
    return ''.join([x for x in s if x not in "T-:"]).split('.')[0]

d1=('2017-01-06T02:23:44.000-0500')
d2=('2017-01-19T17:30:21.000-0500')

f1 = reformat(d1)
f2 = reformat(d2)

start = parse(f1)
end   = parse(f2)
delta = end - start

print(d1 + "=>" + f1)
print(d2 + "=>" + f2)
print(delta)
印刷品:

13 days, 15:06:37
2017-01-06T02:23:44.000-0500=>20170106022344
2017-01-19T17:30:21.000-0500=>20170119173021
13 days, 15:06:37

为什么
end_dt
d1
,它应该是
d2
?这不只是为了确保-你知道datetime对象可以直接从彼此中减去,对吗?请帮我解决这个问题!你会因为格式错误而出现格式不匹配错误。阅读文档:-向下滚动到表格并提供正确的
%…
将参数格式化为您的格式字符串。请尝试
%Y-%m-%d%H-%m-%S
-手头没有PyFIDLE-和/或阅读。也许您还应该订购一点代码-订购看起来很奇怪。非常感谢,先生,实际上我正在做的工作看起来很不一样,但必须摆脱问题护理!感谢Patrick aswell@Sidd如果你有问题或问题,请随便问。如果问题得到解决,请考虑接受这个答案=)谢谢你指出格式字符串中的错误:-谢谢你的帮助