Python3 是否可以免受可能即将到来的 DST 更改的影响?
Is Python3 safe from DST changes that may be coming?
背景
对于 Python 使用的时间值的真正来源,我一直无法找到更深入的解释。大多数文档都指出它 'gets the value from CPython' 但没有详细说明它来自何处。
一些国家/地区最近更改了或正在寻求更改其 DST 政策。这意味着这些国家/地区的设备可能会自动调整时区并产生不正确的基于 GMT 的时间,直到它们根据当前政策进行更新。
这本身并不可怕,因为操作系统通常有一个很好的更新机制。然而,在这些相同的系统上更新 Python 有时是一个非常模糊的领域。 OS 可以处理它,或者 Python 可能与应用程序捆绑在一起。也许 OS 仍在获得关键更新,但没有 Python 更新。
问题/问题
我们无法控制 Python 如何使用我们的代码进行更新。值得关注的是,由于 GMT 时间计算已过时,我们可能会从 Python 获得不正确的 unix 时间戳。
如果Python将GMT时间计算委托给OS,那我们就可以高枕无忧了。如果 Python 不委托它,那么我们可能不得不强制值来自 OS (例如 time+%s)。
所以问题是:Python3 是从 OS 还是从它自己基于本地时间的计算得到 GMT 时间?
Python 不保留自己的时区信息数据库;它将所有与时区相关的计算委托给 OS and/or pytz 第三方包。 UTC 或本地时间戳通过平台的 time.h
.
中的 C gmtime_*()
和 localtime_*()
函数从 OS 获取
有关源代码中的完整故事,请查看 Python version of the datetime module, the C version of the same, the time module, and the pytime.c C 模块。
背景
对于 Python 使用的时间值的真正来源,我一直无法找到更深入的解释。大多数文档都指出它 'gets the value from CPython' 但没有详细说明它来自何处。
一些国家/地区最近更改了或正在寻求更改其 DST 政策。这意味着这些国家/地区的设备可能会自动调整时区并产生不正确的基于 GMT 的时间,直到它们根据当前政策进行更新。
这本身并不可怕,因为操作系统通常有一个很好的更新机制。然而,在这些相同的系统上更新 Python 有时是一个非常模糊的领域。 OS 可以处理它,或者 Python 可能与应用程序捆绑在一起。也许 OS 仍在获得关键更新,但没有 Python 更新。
问题/问题
我们无法控制 Python 如何使用我们的代码进行更新。值得关注的是,由于 GMT 时间计算已过时,我们可能会从 Python 获得不正确的 unix 时间戳。
如果Python将GMT时间计算委托给OS,那我们就可以高枕无忧了。如果 Python 不委托它,那么我们可能不得不强制值来自 OS (例如 time+%s)。
所以问题是:Python3 是从 OS 还是从它自己基于本地时间的计算得到 GMT 时间?
Python 不保留自己的时区信息数据库;它将所有与时区相关的计算委托给 OS and/or pytz 第三方包。 UTC 或本地时间戳通过平台的 time.h
.
gmtime_*()
和 localtime_*()
函数从 OS 获取
有关源代码中的完整故事,请查看 Python version of the datetime module, the C version of the same, the time module, and the pytime.c C 模块。