背景
我一直无法找到有关Python使用的时间值真正来源的更深入解释。大部分文档都指出它“从CPython获取该值”,但并没有详细说明它来自哪个点以外的地方。
一些国家最近已经或正在考虑更改其夏令时政策。这意味着这些国家的设备可能会自动调整时区,并生成错误的基于GMT的时间,直到它们更新为当前政策。
这本身并不可怕,因为操作系统通常具有良好的更新机制。然而,在同一系统上更新Python有时是一个非常模糊的领域。操作系统可能会处理它,或者Python与应用程序捆绑在一起。也许操作系统仍在获取关键更新,但没有Python更新。
问题 / 问题
我们无法控制Python如何通过我们的代码进行更新。问题在于,由于GMT时间计算过时,我们可能会从Python获取不正确的Unix时间戳。
如果Python将GMT时间计算委托给操作系统,那么我们可以放心。如果Python没有委派它,那么我们可能必须强制该值来自操作系统(例如time +%s)。
所以问题是:Python3是从操作系统获取其GMT时间还是根据本地时间进行自己的计算?