有没有一种很好的方法告诉python在整个程序中使用时间偏移?
例如,当我使用记录模块时,偏移应该神奇地添加到时间。
进一步调用time.time()也应该给我这个偏移量等。
我无法设置系统时间,因为这是一个没有完全由我管理的生产服务器(这是复杂的......)并且已经有一个ntp客户端正在运行。
安装的ntp客户端经常失败,没有充分的理由,所以我不相信它。
鉴于这是监控脚本的一部分(工作正常):
import time
import ntplib
_time_offset = 0.0 # this will be filled with the correct time/seconds by ntplib
def getActualTime(pool="pool.ntp.org"):
""" this queries the ntp for the correct time and returns the results """
global _time_offset
if _time_offset != 0.0:
pass # use cached
else:
_time_offset = ntplib.NTPClient().request(pool).offset
return float(time.time()+_time_offset)
def getActualCtime():
return time.ctime(getActualTime())
if __name__ == '__main__':
print getActualTime()
print getActualCtime()
系统时间+ ntp偏移量(这应该始终是正确的时间):
1403182331.57
Thu Jun 19 14:52:11 2014
如果我调用time.time()或time.ctime(),将返回错误的未经检查的系统日期。