2013-02-27 281 views
13

我只想比較日期時間中的時間部分。我有不同的日期,只有時間字段才能比較。由於日期是不同的,只有時間部分我想考慮所以我認爲創建兩個日期時間對象不會幫助。 我的字符串作爲僅比較日期時間中的時間部分 - Python

start="22:00:00" 
End="03:00:00" 
Tocompare="23:30:00" 

以上是字符串時,我將它們與時間值轉換爲

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

它給

1900-01-01 22:00:00 

在Python裏是默認的日期。 所以我需要避免這一切,只想要時間部分。我只需要檢查我的Tocompare落在startEnd之間

回答

7

比較他們的時間使用datetime.time()

+0

甚至時間模塊考慮日期的一部分,我只需要一段時間。@ jarmod – 2013-02-27 05:56:52

+1

根據http://docs.python.org/3.3/library/datetime.html#datetime.time,時間對象代表一天中的(當地)時間,與任何特定日子無關。 – jarmod 2013-02-27 06:30:06

+0

o對不起,我只是想通了...謝謝你的回覆 – 2013-06-09 13:16:08

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

非常感謝@matt – 2013-02-27 06:24:13