树莓派没有电池,因此断电后系统时间会停止,直到你开机后又继续计时。
因为项目需要用到本地时间,精度要求不高不想折腾(如果需要高精度,需要安装ntp),所以考虑用python脚本同步百度的时间,精度误差很小在0.5-1秒之内,需要网络支持。
1、创建python程序
sudo nano date.py
2、写入python代码
#-*- coding: UTF-8 -*-
importosimporttimeimporthttplib#获取远程服务器时间并同步本地
defget_webservertime(host):
conn=httplib.HTTPConnection(host)
conn.request("GET", "/")
r=conn.getresponse()
ts= r.getheader(‘date‘) #获取http头date部分
ltime= time.strptime(ts[5:25], "%d %b %Y %H:%M:%S") #将GMT时间转换成北京时间
ttime=time.localtime(time.mktime(ltime)+8*60*60) #时区+8小时
currenttime="%u-%02u-%02u %02u:%02u:%02u"%(ttime.tm_year,ttime.tm_mon,ttime.tm_mday,ttime.tm_hour,ttime.tm_min,ttime.tm_sec)
os.system(‘sudo date -s "‘ + currenttime + ‘"‘)
time.sleep(20)