最近由于台式机CMOS电池没电了,每次开机后系统时间都会被初始化。出于每次都要重新设置系统时间太麻烦的考虑,今天用Python实现了系统开机自动校正时间的程序。大致的思路是:首先产生一个windows service,该service在被启动之后通过urllib获得标准北京时间,并根据标准时间校对系统时间。具体代码如下:
#SyncLocaltime.py
#-*-coding=gbk-*-
import urllib
import re
import os
import time
import win32serviceutil
import win32service
import win32event
import win32evtlogutil
url = "http://www.beijing-time.org/time.asp"
def get_information(url):
try:
wp = urllib.urlopen( url )
except :
return []
ch = wp.read()
ch1 = re.sub( r'\s' , "" , ch )
ch2 = ch1.split(";")
return ch2
def get_time():
ans = []
while True :
ch = get_information( url );
if len(ch) == 0 :
print "30秒后将重新连接"
time.sleep( 30 )
else :
break;
for i in range(1 , len( ch )-1 ):
ss = re.search( r'\d' , ch[i] ).start()
needed = ch[i][ss : len( ch[i] ) ]
ans.append( int(needed) )
os.system("date %d-%d-%d" % ( ans[0] , ans[1] , ans[2]) )
os.system("time %d:%d:%d.0" % ( ans[4] , ans[5] ,ans[6]) )
class SyncLocaltime(win32serviceuti