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

1 投票
1 回答
2174 浏览
提问于 2025-04-18 01:18

我有两个字符串对象:

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 个回答

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)

撰写回答