如何检查日期时间是否在中午之前

8

我在Python中有一个datetime对象,我想创建一个函数来检查输入是否在datetime的当天上午或下午(即,在12pm之前或之后)。如何手动创建时间12:00,并且我可以使用大于或小于符号(<>)吗?

我有一个Python的datetime对象,我需要创建一个函数来检查这个datetime对象是不是在当天的上午或者下午(也就是在12点之前或之后)。我需要手动创建时间为12:00,并且我可以使用大于或小于符号(<>)来比较时间吗?

2
你可以仅根据小时部分做出决定。 - Karoly Horvath
1个回答

19

调用datetime对象的datetime.datetime.time()方法,并将其与一个datetime.time()对象进行比较:

if dt.time() < datetime.time(12):

或者只查看datetime.datetime.hour属性:

if dt.hour < 12

后者更简单,前者让你拥有更多的灵活性来与包括分钟组件的时间进行比较:

if dt.time() < datetime.time(12, 30)

演示:

>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2014, 2, 10, 10, 39, 30, 768979)
>>> dt.time() < datetime.time(12)
True
>>> dt.hour < 12
True
>>> dt = dt.replace(hour=20)
>>> dt
datetime.datetime(2014, 2, 10, 20, 39, 30, 768979)
>>> dt.time() < datetime.time(12)
False
>>> dt.hour < datetime.hour
False

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