2013-02-27 17 views
13

datetimeの時間部分のみを比較したいです。私は比較する時間フィールドだけが異なる日付を持っています。日付は異なるので、時間部分だけを考慮したいので、私は2つのdatetimeオブジェクトを作成すると助けにはならないと思います。 datetimeの時間部分のみを比較する - Python

start="22:00:00" 
End="03:00:00" 
Tocompare="23:30:00" 
としての私の文字列

上記は文字列である私は

dt=datetime.strptime(start,"%H:%M:%S") 

として日時でそれらを変換したときには、Pythonのデフォルトの日付です

1900-01-01 22:00:00 

を与えます。 だから私はこれを避け、時間の部分だけを必要とする必要があります。 TocomparestartEnd

答えて

7

の間にあるかどうかを確認するだけです。datetime.time()で時間を比較してください。

+0

でも時間モジュールは、日付部分を考慮し、私は時間の一部を必要としています。@時刻オブジェクトが表す、http://docs.python.org/3.3/library/datetime.html#datetime.timeによる –

+1

をjarmod特定の日とは無関係に(ローカル)時刻。 – jarmod

+0

o申し訳ありません私はちょうどそれを考え出しました...返信ありがとうございます –

2
import datetime 

start = datetime.datetime.strptime(start, '%H:%M:%S') 
start = datetime.time(start.hour, start.minute,start.second) 

tocompare = datetime.datetime.strptime(tocompare, '%H:%M:%S') 
tocompare = datetime.time(tocompare.hour, tocompare.minute, tocompare.second) 

start > tocompare # False 
23

ちょうどその時、分、秒、マイクロ秒を取得するために()メソッドDateTimeオブジェクトのを時間を呼び出します。

dt=datetime.strptime(start,"%H:%M:%S").time() 
+0

ありがとうalot @matt –