我已经有这方面的工作代码,但我对 python 仍然很陌生,我知道有更好的方法来做到这一点。这是我在树莓派上的运动检测脚本中使用的代码。它只是检查它是否发生在我不在家的时间范围内。我已经从脚本的其余部分中提取了代码:
import time
import datetime
import calendar
now = datetime.datetime.now()
x = time.localtime(time.time())
starttime = datetime.datetime(x.tm_year,x.tm_mon,x.tm_mday,8,20,0)
start_timestamp = calendar.timegm(starttime.timetuple())
now_timestamp = calendar.timegm(now.timetuple())
future = starttime + datetime.timedelta(minutes=550)
future_timestamp = calendar.timegm(future.timetuple())
print start_timestamp
print now_timestamp
print future_timestamp
if now_timestamp > start_timestamp and now_timestamp < future_timestamp:
print "bam!"
我需要做的就是查看当前时间是否在开始时间和结束时间之间。我确信有一种方法可以更有效地编写此内容,我认为我的代码相当迟钝。
最佳答案
您不需要使用时间戳并不断转换为和通过 - datetime
对象支持比较。所以你可以将其缩短为:
from datetime import datetime, timedelta
now = datetime.now()
start_time = now.replace(hour=8, minute=20, second=0)
end_time = start_time + timedelta(minutes=550)
if start_time <= now <= end_time:
print 'was out'
关于python - 在Python中检查时间是否位于开始时间和结束时间之间的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760991/