Python:使用 datetime.time() 模块时,时间打印为 00:00:00



我正在为我使用Sense HAT创建的Raspberry Pi气象站进行校准。实际温度与从Pi接收到的读数之间的偏移在一天中的某个时间(当太阳照射到系统时(增加。我想在这段时间内从 Sense HAT 温度中减去一个较大的数字,并在所有其他实例中恢复到较低的数字。

我尝试使用日期时间模块为更重要的校准设置开始和结束时间。我在单独的变量中设置了当前时间。

time = datetime.time()
time_start = datetime.time(12,30,00)
time_end = datetime.time(3,15,00)
if time_start < time and time_end > time:
temperature -= 10
else:
temperature -= 8

我预计输出的温度读数较低,但程序在此期间继续减去 8 度而不是 10 度。我做了一些故障排除,在打印"time"变量时,它打印为"00:00:00"。这可以解释为什么程序跳到 else 语句并且只减去 8。

关于如何解决这个问题的任何想法?

使用datetime.time()等同于 使用time(0, 0, 0)

相反,您想要的是获取当前时间,您可以通过datetime.now().

import datetime
time = datetime.datetime.now().time()
time_start = datetime.time(12,30,00)
time_end = datetime.time(3,15,00)
if time_start < time and time_end > time:
temperature -= 10
else:
temperature -= 8

最新更新