本文实例讲述了python实现定时同步本机与北京时间的方法。分享给大家供大家参考。具体如下:
这段python代码首先从www.beijing-time.org上获取标准的北京时间,然后同步获取的北京时间到本地
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# -*- 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程序设计有所帮助。