检查python列表中当前当前小时是否可用

use*_*084 2 python time python-2.7

我有一个变量与商店的运营时间:

t = '08:00-17:00'
Run Code Online (Sandbox Code Playgroud)

现在,我需要检查商店现在是否开放:

from time import gmtime, strftime
print strftime("%H:%M", gmtime())
#11:26
Run Code Online (Sandbox Code Playgroud)

最合适的方法是什么?作为旁注,我可以t在几分钟内,或更方便的东西.

Ana*_*mar 6

不要试图为当前时间转换为字符串,而应str.split()t进入两个不同的时间,然后将它们转换为datetime.datetime.time使用对象datetime.datetime.strptime(),然后再比较,与在时间成分datetime.datetime.now().示例 -

import datetime
t = '08:00-17:00'
times = t.split('-')
start_time = datetime.datetime.strptime(times[0],'%H:%M').time()
end_time = datetime.datetime.strptime(times[1],'%H:%M').time()
if start_time <= datetime.datetime.now().time() <= end_time:
    #Do you logic
Run Code Online (Sandbox Code Playgroud)

演示 -

关闭时间 -

>>> import datetime
>>> t = '08:00-17:00'
>>> times = t.split('-')
>>> start_time = datetime.datetime.strptime(times[0],'%H:%M').time()
>>> end_time = datetime.datetime.strptime(times[1],'%H:%M').time()
>>> if start_time <= datetime.datetime.now().time() < end_time:
...         print("Shop open")
... 
>>>
Run Code Online (Sandbox Code Playgroud)

开放时间 -

>>> t = '08:00-18:00'
>>> times = t.split('-')
>>> start_time = datetime.datetime.strptime(times[0],'%H:%M').time()
>>> end_time = datetime.datetime.strptime(times[1],'%H:%M').time()
>>> if start_time <= datetime.datetime.now().time() < end_time:
...         print("Shop open")
...
Shop open
>>>
Run Code Online (Sandbox Code Playgroud)

使用此方法即使支持分钟,您也可以更改用于转换timetime对象的格式,如果您愿意,可以支持高达微秒.