我使用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个不同的时间?
答案 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