我有两个字符串对象:
dt1[1]="00:58:00"
dt2[1]="01:02:00"
如果我这样做,
FMT='%H:%M:%S'
SD=datetime.datetime(*time.strptime(dt1[1], FMT)[:6])
FD=datetime.datetime(*time.strptime(dt2[1], FMT)[:6])
它转换为1900-01-01 00:58:00
和1900-01-01 01:02:00
,但我只希望时间部分不是日期。
我已将日期转换为字符串,并仅从中减去时间部分。
现在我需要再次将它们转换为时间对象并执行dt2[1]-dt[1]
以找到时差。
我该怎么办?
答案 0 :(得分:2)
要获取datetime.time()
个对象,只需在结果上调用datetime.datetime.time()
method:
>>> import datetime
>>> import time
>>> dt1 = '00:58:00'
>>> dt2 = '01:02:00'
>>> FMT='%H:%M:%S'
>>> datetime.datetime(*time.strptime(dt1, FMT)[:6])
datetime.datetime(1900, 1, 1, 0, 58)
>>> datetime.datetime(*time.strptime(dt1, FMT)[:6]).time()
datetime.time(0, 58)
>>> datetime.datetime(*time.strptime(dt2, FMT)[:6]).time()
datetime.time(1, 2)
但是,如果您要减去这些,请使用datetime.datetime()
个对象!您无法减去datetime.time()
个对象:
>>> res1 = datetime.datetime(*time.strptime(dt1, FMT)[:6])
>>> res2 = datetime.datetime(*time.strptime(dt2, FMT)[:6])
>>> res2.time() - res1.time()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
>>> res2 - res1
datetime.timedelta(0, 240)