从NTP获得实际时间,安全偏移,在整个程序中使用它

时间:2014-06-19 13:03:15

标签: python offset ntp

有没有一种很好的方法告诉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(),将返回错误的未经检查的系统日期。

0 个答案:

没有答案