在 Python 中获取 Unix 时间

问题描述

在 Python 中,我想获取当前的 Unix 时间戳,然后长期存储该值并由非 Python 系统处理。 (我不仅仅是想计算同一程序运行中两个时间戳之间的差异。)

调用函数 time.time() 似乎是获得所需时间戳的一种非常合理和简洁的方法......直到我阅读文档:

以浮点数形式返回自 epoch 开始的时间(以秒为单位)。纪元的具体日期和闰秒的处理取决于平台。在 Windows 和大多数 Unix 系统上,纪元是 1970 年 1 月 1 日的 00:00:00 (UTC),闰秒不计入纪元以来的时间(以秒为单位)。这通常称为 Unix 时间。要了解给定平台上的时代,请查看 gmtime(0)

[...]

(版本:3.5~3.9

短语“epoch ...取决于平台”是一个警告信号。一个狡猾的短语是“大多数 Unix 系统”。有哪些 Unix 或非 Unix 系统的例子,其中 Python 的 time.time() 的时代不是 1970-01-01T00:00:00Z?

time.time() 对我的目标是否有点不安全?我应该寻找像 datetime.datetime.Now().timestamp() 这样的替代品吗?


深入挖掘,我还注意到以前版本的 Python 似乎没有这些关于 time.time() 的警告:

以浮点数形式返回自纪元以来的时间(以秒为单位)。请注意,即使时间总是作为浮点数返回,但并非所有系统都提供比 1 秒更精确的时间。虽然此函数通常返回非递减的值,但如果系统时钟在两次调用之间已回退,则它可以返回比前一次调用低的值。

(版本:2.73.2~3.4

甚至更旧的措辞:

返回时间为浮点数,以自纪元以​​来的秒数表示,以 UTC 为单位。请注意,即使时间总是作为浮点数返回,但并非所有系统都提供比 1 秒更精确的时间。虽然此函数通常返回非递减的值,但如果系统时钟在两次调用之间已回退,则它可以返回比前一次调用低的值。

(版本:2.2~2.63.0~3.1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)