python实现定时同步本机与北京时间的方法

961次阅读  |  发布于5年以前

本文实例讲述了python实现定时同步本机与北京时间的方法。分享给大家供大家参考。具体如下:

这段python代码首先从www.beijing-time.org上获取标准的北京时间,然后同步获取的北京时间到本地


    # -*- coding: utf-8 -*-
    import time,httplib
    import threading
    def getBeijinTime():
       try:
         conn = httplib.HTTPConnection("www.beijing-time.org")
         conn.request("GET", "/time.asp")
         response = conn.getresponse()
         print response.status, response.reason
         if response.status == 200:
           result = response.read()
           data = result.split("\r\n")
           year = data[1][len("nyear")+1 : len(data[1])-1]
           month = data[2][len("nmonth")+1 : len(data[2])-1]
           day = data[3][len("nday")+1 : len(data[3])-1]
           #wday = data[4][len("nwday")+1 : len(data[4])-1]
           hrs = data[5][len("nhrs")+1 : len(data[5])-1]
           minute = data[6][len("nmin")+1 : len(data[6])-1]
           sec = data[7][len("nsec")+1 : len(data[7])-1]
           beijinTimeStr = "%s/%s/%s %s:%s:%s" % (year, month, day, hrs, minute, sec)
           beijinTime = time.strptime(beijinTimeStr, "%Y/%m/%d %X")
           return beijinTime
       except:
         return None
    def syncLocalTime():
       """
       同步本地时间
       """
       beijinTime = getBeijinTime()
       if beijinTime is None:
         timer = threading.Timer(30.0, syncLocalTime)
         timer.start()
       else:
         tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec = beijinTime[:6]
         import os
         os.system("date %d-%d-%d" % (tm_year, tm_mon, tm_mday))#设置日期
         os.system("time %d:%d:%d.0" % (tm_hour, tm_min, tm_sec))#设置时间
    if __name__=='__main__':
      while True:
        syncLocalTime()
        time.sleep(30)

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8