在python中获取正确时间的简便方法

Noa*_*oah 6 python datetime

我在群集上运行一些作业,每个节点上的日期彼此略微偏离.有没有一种简单的方法可以通过python从互联网上的某个地方获取时间,还是我需要让sysadmin更频繁地同步机器之间的时间?

我想在我发布的每个作业的输出中加上时间戳,但很明显,python time.strftime()等的准确性将取决于机器知道正确的时间.我会在几秒钟内爱上精确度,但现在它只需几分钟.

Mut*_*enu 9

我负责的是运行的是Linux 2.6.33,Python的2.6.5,可惜缺少一个实时时钟,而是一个独立的传感器设备具有联网能力.此外,该设备使用BusyBox,因此它具有最小化的工具功能集.

我创建了下面的脚本,该脚本在网络运行后执行以更正系统时间.我的解决方案可能并不完全解决原始问题(听起来诺亚是用户而不是系统管理员),但这个问题是在使用Python通过NTP搜索同步系统时钟时出现的问题.我认为它可能会帮助其他人降落在这里.

在使用脚本之前,您需要安装ntplib.下载链接和安装说明如下:https: //pypi.python.org/pypi/ntplib/.

将下面代码的内容复制到一个文件(我名为"synctime.py").然后,在网络运行后,执行脚本(例如"python synctime.py").您需要使用提升(root)权限才能正常工作.

import time
import os

try:
    import ntplib
    client = ntplib.NTPClient()
    response = client.request('pool.ntp.org')
    os.system('date ' + time.strftime('%m%d%H%M%Y.%S',time.localtime(response.tx_time)))
except:
    print('Could not sync with time server.')

print('Done.')
Run Code Online (Sandbox Code Playgroud)


Dan*_*olo 5

听起来你应该考虑使用像NTP这样的东西来保持机器的时间彼此同步(最好是全球标准的时间源).


siz*_*erz 4

尝试使用 ntplib for python。我玩了一下,看起来相当稳定。

https://pypi.python.org/pypi/ntplib/