添加时间不起作用但减去作品 - Python

时间:2018-06-12 10:28:34

标签: python datetime

我使用datetime模块添加和减去时间,我使用下面的代码减少时间(秒)

from datetime import datetime
h1='05:00:01'
h2='00:00:01'
format='%H:%M:%S'
newtime=datetime.strptime(h1,format)-datetime.strptime(h2,format)
print(newtime)

这给了我

5:00:00

但是当我把时间加在一起时,它给了我一个错误:

from datetime import datetime
h1='05:00:01'
h2='00:00:01'
format='%H:%M:%S'
newtime=datetime.strptime(h1,format)+datetime.strptime(h2,format)
print(newtime)

TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime'

如何添加2个不同的时间?

3 个答案:

答案 0 :(得分:3)

使用datetime.timedelta

<强>实施例

import datetime
h1='05:00:01'
h2='00:00:01'
format='%H:%M:%S'
h1 = datetime.datetime.strptime(h1,format)
h2 = datetime.datetime.strptime(h2,format)
newtime = h1 + datetime.timedelta(hours=h2.hour, minutes=h2.minute, seconds=h2.second) 

print(newtime.strftime(format))

<强>输出:

05:00:02

答案 1 :(得分:1)

datetime不是一个时间,它是一个日期和时间 - 一个答案&#34;当&#34;而不是&#34;多久&#34;。通过取消日期部分,你得到1900年1月1日。日期减去(两个日期时间的差异是经过的持续时间);但是两个日期的总和是什么?

你想要做的不是添加两个日期时间,而是两个持续时间,由Python的datetime.timedelta类表示。毫不奇怪,持续时间可以加减。

答案 2 :(得分:0)

另一种方法是使用datetime,例如:

from datetime import datetime

h1= datetime.strptime('05:00:01', '%H:%M:%S')
h2= datetime.strptime('00:00:01', '%H:%M:%S')

print((h1 - datetime.strptime('00:00:00', '%H:%M:%S') + h2).time())
# 05:00:02