Python如何在PC系统时间错误时获取正确的当前时间
解决方法
由于无法修改本地系统时间,你需要通过网络时间协议(NTP) 从公共NTP服务器拉取全球同步的准确时间,完全绕开本地时间的限制。
步骤1:安装依赖库
首先安装Python NTP客户端库ntplib:
pip install ntplib
步骤2:拉取准确时间的实现代码
import ntplib from datetime import datetime, timezone, timedelta # 可选国内公共NTP服务器,访问速度更稳定 NTP_SERVER = "ntp.aliyun.com" # 时区偏移设置:东八区(北京时间)为+8,可根据实际所在时区调整 TIMEZONE_DELTA = timedelta(hours=8) # 请求NTP服务器获取准确时间戳 ntp_client = ntplib.NTPClient() ntp_response = ntp_client.request(NTP_SERVER, version=3, timeout=5) # 转换为对应时区的datetime对象 correct_datetime = datetime.fromtimestamp( ntp_response.tx_time, tz=timezone.utc ) + TIMEZONE_DELTA # 输出验证 print(str(correct_datetime))
说明
- 上述代码完全不依赖本地系统时间,只要网络正常就能获取到准确的实际时间,输出格式和你要求的
'2021-10-20 18:00:00.653283'完全一致 - 若需要使用其他时区,仅需修改
TIMEZONE_DELTA的数值即可,例如东九区设置为timedelta(hours=9),西五区设置为timedelta(hours=-5) - 也可替换NTP服务器为其他公共节点:
cn.pool.ntp.org、ntp.tencent.com等
内容的提问来源于stack exchange,提问作者Zuhair Ishraq
相关产品推荐
相关产品推荐

