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在几分钟内,或更方便的东西.
不要试图为当前时间转换为字符串,而应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)
使用此方法即使支持分钟,您也可以更改用于转换time为time对象的格式,如果您愿意,可以支持高达微秒.