user534023 Asked:2023-01-08 12:39:43 +0000 UTC2023-01-08 12:39:43 +0000 UTC 2023-01-08 12:39:43 +0000 UTC 如何获取不依赖于系统指定日期的日期 772 datetime.now()显示系统中设置的日期。我怎样才能找出不依赖于系统设置的日期? python 2 个回答 Voted Best Answer Павел 2023-01-08T12:52:28Z2023-01-08T12:52:28Z 基本上,所有Python与日期相关的库(datetime, pytz, ...)都在其工作中使用操作系统中设置的信息,因此使用它们来获取与系统设置无关的数据是行不通的。 但是有一个出路,你可以向任何ntp服务器(精确时间服务器)发出请求,最流行的是ntp.org,另外你需要有一个时区列表(例如通过一个模块)才能得到来自服务器响应的必要数据。 该算法如下: 首先,通过包管理器pip,安装包含所有时区信息的所需模块,以及ntp用于与服务器一起工作的客户端界面: $ pip install zoneinfo, tzdata, ntplib 我们向服务器发送请求,并根据所需的时区从响应中获取必要的信息。 代码: import datetime import ntplib import zoneinfo tz_info = zoneinfo.ZoneInfo("Europe/Moscow") ntp_server = 'pool.ntp.org' client = ntplib.NTPClient() response = client.request(ntp_server) dt = datetime.datetime.fromtimestamp(response.tx_time, tz=tz_info) print(dt) 结论: 2023-01-08 11:51:11.134537+03:00 CrazyElf 2023-01-08T16:39:39Z2023-01-08T16:39:39Z from datetime import datetime print(datetime.utcnow()) UTC("Coordinated Universal Time") - 不考虑系统时区的日期和时间(但取决于系统中设置的数据和时间)
基本上,所有
Python与日期相关的库(datetime, pytz, ...)都在其工作中使用操作系统中设置的信息,因此使用它们来获取与系统设置无关的数据是行不通的。但是有一个出路,你可以向任何
ntp服务器(精确时间服务器)发出请求,最流行的是ntp.org,另外你需要有一个时区列表(例如通过一个模块)才能得到来自服务器响应的必要数据。该算法如下:
pip,安装包含所有时区信息的所需模块,以及ntp用于与服务器一起工作的客户端界面:代码:
结论:
UTC("Coordinated Universal Time") - 不考虑系统时区的日期和时间(但取决于系统中设置的数据和时间)