用python获得正确时间的简单方法

2024-05-29 08:15:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在集群上运行一些作业,其中每个节点上的日期彼此略有不同。有没有一种简单的方法可以通过python从internet上的某个地方获取时间,或者我需要让sysadmin更频繁地同步机器之间的时间?

我想在我启动的每个作业的输出中加上一个时间戳,但是很明显,python的time.strftime()等的准确性将取决于机器知道正确的时间。我希望几秒钟内准确,但现在几分钟内。


Tags: 方法机器节点time地方作业时间集群
3条回答

我正在处理一个独立的传感器设备,它运行Linux2.6.33和Python2.6.5,不幸的是缺少实时时钟,但是确实有网络功能。此外,该设备使用BusyBox,因此它具有一组最小化的工具功能。

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

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

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

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.')

听起来您应该考虑使用NTP之类的东西来保持机器的时间彼此同步(最好是全局标准时间源)。

试试ntplib for python。我玩过一点,它看起来很稳定。

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

相关问题 更多 >

    热门问题