2013-02-27 324 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