如何在python 2.4中将字符串对象转换为时间对象

时间:2014-04-04 06:32:32

标签: python string python-datetime

我有两个字符串对象:

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:001900-01-01 01:02:00,但我只希望时间部分不是日期。

我已将日期转换为字符串,并仅从中减去时间部分。 现在我需要再次将它们转换为时间对象并执行dt2[1]-dt[1]以找到时差。

我该怎么办?

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)