**问题描述:**有如下程序输出日志,计算程序运行时间,显示花费623分钟?

start time:2019-03-15 19:45:31.237894
end time:2019-03-17 06:09:01.415541
It cost 623 minutes

相关代码:

import datetime
s = '2019-03-15 19:45:31'
s_datetime = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
e = '2019-03-17 06:09:01'
e_datetime = datetime.datetime.strptime(e, '%Y-%m-%d %H:%M:%S')
result = (e_datetime - s_datetime).seconds // 60
# output
# Out[50]: 623

但是,当我实际计算时间花费时,可不止623分钟,问题错在哪里呢?

问题原因:

# seconds 这个属性只计算时间差中的小时、分钟和秒部分的和,不包括时间差中的天数
result = (e_datetime - s_datetime).seconds // 60
# total_seconds() 这个会获得时间差总的时间,并转换为秒
result = (e_datetime - s_datetime).total_seconds() // 60

总结