python獲取網路時間和本地時間

pythontab發表於2013-03-08

今天我們來看一下如何用python獲取網路時間和本地時間,直接上程式碼吧,程式碼中都有註釋。

python獲取網路時間

獲取網路時間
 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()
             logging.debug(result)
             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:
         logging.exception("getBeijinTime except")
         return None

python獲取本地時間

同步本地系統時間
 def syncLocalTime():
     """
     同步本地時間
     """
     logging.info("current local time is: %d-%d-%d %d:%d:%d" % time.localtime()[:6])
      
     beijinTime = getBeijinTime() 
     if beijinTime is None:
         logging.info("get beijinTime is None, will try again in 30 seconds...")
         timer = threading.Timer(30.0, syncLocalTime)
         timer.start();
     else:
         logging.info("get beijinTime is: %d-%d-%d %d:%d:%d" % beijinTime[:6])
              
         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))    #設定時間
         logging.info("syncLocalTime complete, current local time: %d-%d-%d %d:%d:%d \n" % time.localtime()[:6])


相關文章