1

2 つの文字列オブジェクトがあります。

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それはandに変換され1900-01-01 01:02:00ますが、日付ではなく時間部分のみが必要です。

日付を文字列に変換し、時刻の部分だけを差し引いています。今、私はそれらを再び時間オブジェクトに変換し、dt2[1]-dt[1]時差を見つける必要があります。

どうすればできますか。

4

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)
于 2014-04-04T06:35:20.853 に答える