我正在创建一个每 5 秒执行一次的循环,从 startTime 变量开始,到 stopTime 变量结束。但是,下面的代码忽略了我的 startTime 和 endTime 变量中的分钟数,并且只在小时内执行。例如,即使我的 startTime 是“1130”,代码也会在 11:05 执行,而不是结束循环。我对 endTime 变量有同样的问题。如果当前时间为 12:45,即使 endTime 变量为“1230”,代码仍会执行。代码将在“1300”处停止执行。
frequency = 5
startTime = '1130'
endTime = '1230'
while True:
now = datetime.now().strftime('%H:%M:%S')
if startTime <= now <= endTime:
print('Loop is working. Time is: ',now)
time.sleep(frequency)
else:
print('Loop is stopped')
break
我住在中部时间,所以我尝试通过修改“now”变量来切换到东部时区:
now = datetime.now(timezone('US/Eastern')).strftime('%H:%M:%S.%f %Z')
但是当我使用东部 datetime.now() 用 startTime 和 endTime 替换东部时间时,我仍然遇到同样的问题。
是否可以使用 strftime() 在精确的分钟内执行代码?
阿晨1998
相关分类