不知道如何正确描述我的问题,但是当我在while语句中比较两个日期时间对象时,整个程序将停止工作。
我有一个方法work()
import time
import datetime
def work():
now = None
intr = 10.0
d = datetime.datetime.utcnow()
least_time = datetime.datetime.combine(datetime.datetime.today(), datetime.time(10, 10, 00))
finish = datetime.datetime.combine(datetime.datetime.today(), datetime.time(10, 10, 20))
if datetime.datetime.today().weekday() == 0:
least_time = datetime.datetime.combine(datetime.datetime.today(), datetime.time(11,10,00))
finish = datetime.datetime.combine(datetime.datetime.today(), datetime.time(11,10,20))
while d <= finish:
d = datetime.datetime.utcnow()
if intr > 1 and d >= least_time:
intr = 1
print("Interval set to 1 sec")
if now == None:
now = time.time()
if time.time() - now >= intr:
print("Work")
print("_____")
now = None
print("End")
而且,如果我在该方法之前调用
print()
或其他方法:print("1")
print("2")
print("3")
work()
该程序只是空闲,什么也不做。
最佳答案
发生什么情况取决于您当前的时区。
调用datetime.datetime.utcnow()
会以UTC给出日期时间,
而datetime.datetime.today()
为您提供时区(计算机具有的)的当前日期时间:
变更:
d = datetime.datetime.utcnow()
至:
d = datetime.datetime.now()
或者:
d = datetime.datetime.today()
将解决您的问题。
关于python - 在while语句中比较两个日期时,程序处于空闲状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41297175/