python - 在 Python 中获取 Unix 时间
问题描述
在 Python 中,我想获取当前的 Unix 时间戳,然后长期存储该值并由非 Python 系统处理。(我不只是试图计算同一程序运行中两个时间戳之间的差异。)
调用该函数time.time()
似乎是获得所需时间戳的一种非常合理且简洁的方式......直到我阅读了文档:
以浮点数形式返回自纪元以来的时间(以秒为单位)。纪元的具体日期和闰秒的处理取决于平台。在 Windows 和大多数 Unix 系统上,纪元是 1970 年 1 月 1 日 00:00:00 (UTC),并且闰秒不计入纪元以来的时间(以秒为单位)。这通常称为 Unix 时间。要了解给定平台上的纪元,请查看.
gmtime
(0)
[...]
短语“epoch ... is platformdependent”是一个警告信号。Weasel 短语是“大多数Unix 系统”。time.time()
Python 的纪元不是1970-01-01T00:00:00Z的 Unix 或非 Unix 系统有哪些示例?
对我的目标来说是time.time()
不安全的吗?我应该寻找替代品datetime.datetime.now().timestamp()
吗?
深入挖掘,我还注意到以前版本的 Python 似乎没有以下警告time.time()
:
以浮点数形式返回自纪元以来的时间(以秒为单位)。请注意,尽管时间始终以浮点数形式返回,但并非所有系统都提供比 1 秒更好的时间精度。虽然此函数通常返回非递减值,但如果系统时钟已在两次调用之间调回,则它可以返回比先前调用更低的值。
甚至更旧的措辞:
以浮点数形式返回时间,以自纪元以来的秒数表示,以 UTC 为单位。请注意,尽管时间始终以浮点数形式返回,但并非所有系统都提供比 1 秒更好的时间精度。虽然此函数通常返回非递减值,但如果系统时钟已在两次调用之间调回,则它可以返回比先前调用更低的值。
解决方案
推荐阅读
- spring-boot - Spring Boot:如何正确地将错误日志发送到 GCP 上的 Stackdriver
- html - 我可以在 HTML 中用零填充数字吗?
- r - 将从 as.POSIXct 或 as.POSIXlt 返回的值保存到列中
- angular - 错误语法错误:JSON 输入意外结束?
- javascript - window.print() 不在动态生成的文本上应用文本颜色
- c# - 如何在 Visual Studio 2017 中以编程方式捕获 Web 方法调试行
- css - 使用 Chrome 扩展调整 CSS
- graph - Grafana SingleStat:超过阈值的时间百分比
- sql - SQL Left Join - 在一个条件下加入,默认为另一个条件
- selenium - 如何解决“不推荐使用构造函数 ChromeDriver(Capabilities)”和 WebDriverException:ChromeDriver 和 Chrome 超时错误