如何在Python 2.4中将字符串对象转换为时间对象
我有两个字符串对象:
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]
来找出时间差。
我该怎么做呢?
1 个回答
2
要获取 datetime.time()
对象,只需在结果上调用 datetime.datetime.time()
方法:
>>> 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)