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

检查python列表中是否有当前小时,python,python-2.7,time,Python,Python 2.7,Time,我有一个与商店运营时间有关的变量: t = '08:00-17:00' 现在,我需要检查商店现在是否开门: from time import gmtime, strftime print strftime("%H:%M", gmtime()) #11:26 最合适的方法是什么?作为旁注,我可以在几分钟内得到t,或者更方便的东西。与其尝试将当前时间转换为字符串,不如将t转换为两个不同的时间,然后使用datetime.datetime.strtime()将它们转换为datetime.time对象

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

t = '08:00-17:00'
现在,我需要检查商店现在是否开门:

from time import gmtime, strftime
print strftime("%H:%M", gmtime())
#11:26

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

与其尝试将当前时间转换为字符串,不如将
t
转换为两个不同的时间,然后使用
datetime.datetime.strtime()
将它们转换为
datetime.time
对象,然后将其与
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
导入日期时间
t='08:00-17:00'
时间=t.split('-')
start_time=datetime.datetime.strtime(次[0],“%H:%M”).time()
end_time=datetime.datetime.strtime(次[1],“%H:%M”).time()
如果开始时间>导入日期时间
>>>t='08:00-17:00'
>>>时间=t.split('-')
>>>start_time=datetime.datetime.strtime(次[0],“%H:%M”).time()
>>>end_time=datetime.datetime.strtime(次[1],“%H:%M”).time()
>>>如果开始时间>>
开放时间-

>>> 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
>>>
t='08:00-18:00' >>>时间=t.split('-') >>>start_time=datetime.datetime.strtime(次[0],“%H:%M”).time() >>>end_time=datetime.datetime.strtime(次[1],“%H:%M”).time() >>>如果开始时间>>

使用此方法,即使支持分钟,您也可以更改用于将
时间
转换为
时间
对象的格式,并支持微秒(如果愿意)。

首先,您需要将t转换为可比值,例如整数,因此:

storeOpen, storeCloses = '08h00-17h00'.split('-')
这将字符串“08h00-17h00”拆分为:

之后,应将storeOpen和storeCloses转换为整数:

storeOpenHour, storeOpenMinutes = storeOpen.split('h') #splits the storeOpen into two
#converts to integer
storeOpenHour = int(storeOpenHour)
storeOpenMinutes = int(storeOpenMinutes)
#you should repeat the same process to storeClose
然后你就比较它们:

if (nowMinutes > storeOpenMinutes and nowHour > storeOpenHour) and (nowMinutes < storeCloseMinutes and nowHour < storeCloseHour):
    println "is open!"
if(nowMinutes>storeOpenMinutes和nowHour>storeOpenHour)和(nowMinutes
为什么要列出?你能有多个元素的开始/结束时间吗?@AnandSKumar不,我不能。问题已更新。@user299008t4 hello batter的可能重复项。如果tt在t中为true,则列出t=['08:00','17:00',tt=strftime(“%H:%M”),否则为false
storeOpenHour, storeOpenMinutes = storeOpen.split('h') #splits the storeOpen into two
#converts to integer
storeOpenHour = int(storeOpenHour)
storeOpenMinutes = int(storeOpenMinutes)
#you should repeat the same process to storeClose
if (nowMinutes > storeOpenMinutes and nowHour > storeOpenHour) and (nowMinutes < storeCloseMinutes and nowHour < storeCloseHour):
    println "is open!"