前言
这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:RodmaChen
为了防止应用在系统上运行时候,系统时间与真实时间出现误差。可以调用ntp服务器获取正确的时间进行调整
NTP简介
网络时间协议(NTP)是一种用于同步计算机时钟的协议。它可以通过网络将计算机时钟同步到全球标准时间,确保计算机时钟的准确性和一致性。
NTP的工作原理
NTP使用客户端-服务器模型。其中一个计算机(称为NTP服务器)充当时间源,提供全球标准时间。其他计算机(称为NTP客户端)通过网络连接到NTP服务器,并使用NTP协议获取时间信息。
当NTP客户端与NTP服务器通信时,它们会交换时间信息。NTP客户端使用这些信息来调整自己的时钟,以确保其与全球标准时间保持同步。NTP客户端还可以充当NTP服务器,向其他计算机提供时间信息。
NTP的优点
- 精度高:NTP可以将计算机时钟与全球标准时间同步到毫秒级别。
- 稳定性好:NTP可以通过多个时间源进行校准,从而提高系统的稳定性和可靠性。
- 跨平台:NTP可以在各种操作系统和硬件平台上运行。
- 开放源代码:NTP是一个开放源代码项目,用户可以自由使用和修改它。
NTP的应用场景
NTP广泛应用于需要精确时间同步的领域,例如金融、电信、科学研究等。以下是一些常见的应用场景:
- 金融交易:金融交易需要精确时间同步,以确保交易的准确性和公正性。
- 电信网络:电信网络需要对各种设备进行时间同步,以确保网络流量的正确路由和故障排除。
- 科学研究:科学研究需要精确时间同步,以确保实验结果的准确性。
- 航空航天:航空航天需要对各种设备进行时间同步,以确保安全和准确性。
服务器地址
NTP(Network Time Protocol)服务器地址是由网络服务提供商或组织提供的。一些常见的公共NTP服务器地址包括:
time.nist.gov
time.windows.com
pool.ntp.org
ntp.ubuntu.com
time.google.com
ntp.nasa.gov
time.apple.com
linux安装使用
下载
yum install ntp
启动查看
systemctl start ntp
systemctl status ntp
测试
修改系统时间
data -s
更新回正确时间
ntpdate -q time.nist.gov
代码示例
python3.7
ntplib~=0.4.0
def ntf_config(self, server):
# 创建NTP客户端
ntp_client = ntplib.NTPClient()
# 设置客户端的超时时间为3秒
ntp_client.timeout = 3
try:
# 获取NTP服务器返回的时间戳
response = ntp_client.request(server)
ntp_time = response.tx_time
# 转化ntp时间 UTC
utc_time = time.gmtime(ntp_time)
# 设置系统时间 UTC
new_time = time.strftime("%Y-%m-%d %H:%M:%S", utc_time)
subprocess.check_call(["date", "-u", "-s", new_time])
return True
except Exception as e:
logger.info("开启ntp报错:" + str(e))
小知识
UTC和CST都是表示时间的标准,但它们之间有一些区别。
- UTC是协调世界时(Coordinated Universal Time)的缩写,是一种基于原子钟的时间标准。UTC被广泛使用作为全球标准时间,它与地球自转无关,因此不会受到地球自转速度变化的影响。UTC没有时区之分,它是全球通用的时间标准。
- CST是中国标准时间(China Standard Time)的缩写,是中国所采用的时间标准。CST是以北京时间为基准,比UTC慢8个小时。因此,如果UTC时间是12:00,那么在中国的CST时间就是20:00。
总之,UTC是全球通用的时间标准,而CST是中国所采用的时间标准,两者之间相差8个小时。
作者:RodmaChen
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。