python - 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。
关于如何解决这个问题的任何想法?
解决方案
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
推荐阅读
- python - 使用多个 worker 和 Redis 部署 Flask SocketIO
- javascript - 为什么 log4js 不断拆分日志文件?
- python - 为 DataFrame 的每个部分/切片计算单独的平均值
- c - 带有 beaglebone 黑色无线的 Adafruit 终极 gps 分线模块 - UART 问题
- r - 替换 FASTA 文件中的核苷酸
- android - 在android应用程序中加载音频文件
- node.js - Angular 中的动态表仅将更改的数据发送到 API
- javascript - OAuth2 弹出窗口
- mysql - WSL 连接到 Windows 上的 MySQL Server 8 不起作用
- css - 带有溢出滚动和最大高度的 CSS 高度自动