今天我们来看一下如何用python获取网络时间和本地时间,直接上代码吧,代码中都有注释。
python获取网络时间
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
|
获取网络时间 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( "
" ) 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获取本地时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
同步本地系统时间 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
" % time.localtime()[: 6 ]) |