Ste*_*Jay 85 python comparison time
我如何比较python中的时间?
我看到日期比较可以完成,并且还有"timedelta",但我很难找到如何检查当前时间(来自datetime.now())是否早于,等于或晚于指定时间(例如早上8点),无论日期如何.
小智 108
您无法将特定时间点(例如"现在")与不固定的重复事件(每天早上8点)进行比较.
您可以检查是否现在之前或之后,今天上午8点:
>>> import datetime
>>> now = datetime.datetime.now()
>>> today8am = now.replace(hour=8, minute=0, second=0, microsecond=0)
>>> now < today8am
True
>>> now == today8am
False
>>> now > today8am
False
Run Code Online (Sandbox Code Playgroud)
Pär*_*der 59
您可以使用对象的time()方法datetime来获取时间,您可以将其用于比较而不考虑日期:
>>> this_morning = datetime.datetime(2009, 12, 2, 9, 30)
>>> last_night = datetime.datetime(2009, 12, 1, 20, 0)
>>> this_morning.time() < last_night.time()
True
Run Code Online (Sandbox Code Playgroud)
Jes*_*nee 11
很惊讶我在这里没有看到这一班轮:
datetime.datetime.now().hour == 8
Run Code Online (Sandbox Code Playgroud)
您可以直接比较datetime.datetime对象
例如:
>>> a
datetime.datetime(2009, 12, 2, 10, 24, 34, 198130)
>>> b
datetime.datetime(2009, 12, 2, 10, 24, 36, 910128)
>>> a < b
True
>>> a > b
False
>>> a == a
True
>>> b == b
True
>>>
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用 Timedelta 函数进行 x 时间增加比较。
>>> import datetime
>>> now = datetime.datetime.now()
>>> after_10_min = now + datetime.timedelta(minutes = 10)
>>> now > after_10_min
False
Run Code Online (Sandbox Code Playgroud)
灵感来自罗杰·佩特:
import datetime
def todayAt (hr, min=0, sec=0, micros=0):
now = datetime.datetime.now()
return now.replace(hour=hr, minute=min, second=sec, microsecond=micros)
# Usage demo1:
print todayAt (17), todayAt (17, 15)
# Usage demo2:
timeNow = datetime.datetime.now()
if timeNow < todayAt (13):
print "Too Early"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148400 次 |
| 最近记录: |