当前位置:   article > 正文

python3.7 获取网络时间_获取网络上北京时间

获取网络上北京时间

1,从网页获取时间 网址: https://beijing-time.org/
在头信息中有个GMT时间 稍加转换就是北京时间了
在这里插入图片描述
获取时间的代码如下

def get_beijin_time():
    try:
        url = 'https://beijing-time.org/'
        request_result = requests.get(url=url)
        if request_result.status_code == 200:
            headers = request_result.headers
            net_date = headers.get("date")
            gmt_time = time.strptime(net_date[5:25], "%d %b %Y %H:%M:%S")
            bj_timestamp = int(time.mktime(gmt_time) + 8 * 60 * 60)
            return datetime.datetime.fromtimestamp(bj_timestamp)
    except Exception as exc:
        return datetime.datetime.now()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

另外也可以从 https://www.beijing-time.org/t/time.asp 获取时间
在这里插入图片描述
返回值: t0=new Date().getTime(); nyear=2022; nmonth=1; nday=10; nwday=1; nhrs=10; nmin=48; nsec=59;
剩下的就是字符串的截取拼装

2 利用ntp同步时间
网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。
关于时间网络协议的相关内容百度一下: 网络时间协议

前提:
1 ntp服务器 https://dns.icoa.cn/ntp/
2 下载 ntp库 pip install ntplib
代码如下

def get_ntp_time():
    ntp_client = ntplib.NTPClient()
    response = ntp_client.request('cn.ntp.org.cn')
    return datetime.datetime.fromtimestamp(response.tx_time)
  • 1
  • 2
  • 3
  • 4

两种获取时间的完整代码如下

# -*- coding: utf-8 -*-
import datetime
import time

import ntplib
import requests


def get_beijin_time():
    try:
        url = 'https://beijing-time.org/'
        request_result = requests.get(url=url)
        if request_result.status_code == 200:
            headers = request_result.headers
            net_date = headers.get("date")
            gmt_time = time.strptime(net_date[5:25], "%d %b %Y %H:%M:%S")
            bj_timestamp = int(time.mktime(gmt_time) + 8 * 60 * 60)
            return datetime.datetime.fromtimestamp(bj_timestamp)
    except Exception as exc:
        return datetime.datetime.now()


def get_ntp_time():
    ntp_client = ntplib.NTPClient()
    response = ntp_client.request('cn.ntp.org.cn')
    return datetime.datetime.fromtimestamp(response.tx_time)


if __name__ == '__main__':
    bj_time = get_beijin_time()
    print("北京时间: ", bj_time)
    ntp_time = get_ntp_time()
    print("ntp时间: ", ntp_time)

  • 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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/579396
推荐阅读
相关标签
  

闽ICP备14008679号