仅比较 Python 中日期时间的时间部分

37
我希望只比较日期时间中的时间部分。我有不同的日期,只有时间字段可以比较。由于日期不同,而且只考虑时间部分,所以我认为创建两个日期时间对象是没有帮助的。 我的字符串是:
start="22:00:00"
End="03:00:00"
Tocompare="23:30:00"

上面是我使用datetime转换后的字符串。
dt=datetime.strptime(start,"%H:%M:%S")

它给出

1900-01-01 22:00:00

这是Python中的默认日期。 因此,我需要避免所有这些,并且只想要时间部分。我只需要检查我的“Tocompare”是否在“start”和“End”之间。
3个回答

58

只需调用datetime对象的.time() 方法,即可获取其小时、分钟、秒和微秒。

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

10

即使时间模块考虑日期部分,我仍需要仅时间部分。@jarmod - Amit K.
1
根据http://docs.python.org/3.3/library/datetime.html#datetime.time,时间对象表示一天中的(本地)某个时间,独立于任何特定日期。 - jarmod

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接