程序空闲时比较while语句中的两个日期

时间:2016-12-23 07:38:47

标签: python datetime time

不知道如何正确描述我的问题,但是当我在while语句中比较两个日期时间对象时,整个程序停止工作。 我有一个方法 id number age bmi ht 1 1 1 11 18 120 2 1 2 13 20 140 3 1 3 15 21 160 4 2 1 11 19 130 5 2 2 13 18 150 6 2 3 15 21 170 7 3 1 11 17 125 8 3 2 13 19 145 9 3 3 15 21 165 10 4 1 11 18 121 11 4 2 13 21 141 12 4 3 15 24 161 13 5 1 11 18 130 14 5 2 13 24 150 15 5 3 15 27 170

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()

程序闲置,什么都不做。

1 个答案:

答案 0 :(得分:3)

取决于您当前的时区。 对datetime.datetime.utcnow()的调用给出了UTC的日期时间, 而datetime.datetime.today()为您的时区(机器具有)提供当前日期时间:

更改:

d = datetime.datetime.utcnow()

为:

d = datetime.datetime.now()

或者:

d = datetime.datetime.today()

可以解决您的问题。