不知道如何正确描述我的问题,但是当我在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()
程序闲置,什么都不做。
答案 0 :(得分:3)
取决于您当前的时区。
对datetime.datetime.utcnow()
的调用给出了UTC的日期时间,
而datetime.datetime.today()
为您的时区(机器具有)提供当前日期时间:
更改:
d = datetime.datetime.utcnow()
为:
d = datetime.datetime.now()
或者:
d = datetime.datetime.today()
可以解决您的问题。