首页 > 解决方案 > Python:使用 datetime.time() 模块时,时间打印为 00:00:00

问题描述

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

我尝试使用 datetime 模块来设置开始和结束时间以进行更重要的校准。我在一个单独的变量中设置了当前时间。

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 度。我进行了一些故障排除,当打印“时间”变量时,它打印为“00:00:00”。这可以解释为什么程序跳到 else 语句并且只减去 8。

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

标签: python

解决方案


usingdatetime.time()等同于 using 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

推荐阅读