python - 需要从 NTP 服务器检查当前时间是否在 python 的某个时间范围内
问题描述
我需要检查来自 NTP 服务器(使用ntplib
模块)的当前时间是否在某个要求的时间范围内。
我已经编写了下面的代码,但我需要一些帮助来完成这项任务。
#!/usr/bin/python
import ntplib
from time import ctime
ntp_client = ntplib.NTPClient()
response = ntp_client.request('pool.ntp.org')
print (ctime(response.tx_time))
输出:
Fri Aug 16 13:26:16 2019
现在我需要检查 ntp 当前时间“13:26:16”是否在“09:30:00 - 15:30:00”时间范围内,那么我们如何在 Python 中检查呢?
必须说当前 ntp 时间在/不在时间范围“09:30:00 - 15:30:00”内
解决方案
将纪元时间戳转换为合适的表示形式,例如 Pythondatetime
对象并检查小时和分钟字段。
from time import gmtime
# ...
dt = time.gmtime(response.tx_time)
if (dt.tm_hour == 9 and dt.tm_min >= 30) or (
10 <= dt.tm_hour <= 14) or (
dt.tm_hour == 15 and dt.tm_min <= 30):
print('yes indeed')
else:
print('not')
时区总是很棘手;以上为您提供 UTC(名称含糊地暗示gmtime
)。如果您想与当地时区的值进行比较,请尝试time.localtime
。
推荐阅读
- javascript - Promise 在它应该捕获错误时解决
- r - 从嵌套 tibble 的 2 个不同列中提取标题和副标题
- azure - 在 Linux 上运行的 .NET Core Azure 函数中的 SharePoint CSOM
- python - 绘制非线性方程的解对
- php - phpMailer 停止发送电子邮件
- string-comparison - 将按钮标签值与字符串变量进行比较
- git - 如何在 SourceTree 中将文件导入我的本地文件?
- html - 加载workDays ejs-schedule时的无限循环
- arrays - 在颤振/飞镖中创建一个二维数组
- c# - 如何在 WinXP 中的 .NET 中使用 TLS 1.2?