在python之中一般获取时间都会去使用time模块或者是datetime模块,但是使用这些模块内方法获取到的时间是本地系统时间,可能会有一点差异。而要得到准确时间的话就是要获取网络时间,它是从中国时间校准网上得到。下文有详细代码示例和步骤解析,一起看看吧。

Python怎么获取网络时间?Python得到网络时间如何实现

1.在开始编写代码之前需要知道的就是,我们现在处在的时区为东八区,而这个是根据首都北京所在的区域来决定的,所以实际获取到的时间为北京时间。那么网络时间就是要从网站上面获取到的,使用HTTPConnection()方法从该网站上获取数据,示例如下:

import httplib
conn = httplib.HTTPConnection("www.beijing-time.org")

2.以上步骤就表示已经和这个有北京时间的网站建立连接了,接下来需要调用requests方法()并且决定以哪一种方式去访问,之后用getresponse()方法就可以访问该网站并且获取响应的数据了。

使用这种方式的原因在于能够通过http协议直接向网站发起请求,并且返回的数据就直接会是一个网络时间而每其他冗余数据了,代码如下所示:

conn = httplib.HTTPConnection("www.beijing-time.org")
conn.request("GET", "/time.asp")
response = conn.getresponse()

3.因为响应数据中还包含了http状态码来表示是否请求成功,只要为200就表示请求成功并且返回数据了。而接下来需要用read()方法将响应数据读取到python中,然后对其进行分割操作。

因为返回的数据不是大家熟悉的年月日时分秒格式,而是直接连在一起的时间。所以需要使用切片方式从字符串中将它们取出来,然后再通过时间格式化即可转为大家平常所见的时间格式,详细代码如下所示:

result = response.read()
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]
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")
print(beijinTime)

以上就是关于“Python怎么获取网络时间?Python得到网络时间如何实现”的全部内容了,希望对你有所帮助。

更多python相关文章请访问分类:python

【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!