首页  >  文章  >  后端开发  >  如何准确地将Python日期时间对象转换为纪元时间戳?

如何准确地将Python日期时间对象转换为纪元时间戳?

Susan Sarandon
Susan Sarandon原创
2024-11-17 09:34:03491浏览

How to Accurately Convert Python Datetime Objects to Epoch Timestamps?

使用 strftime 将 Python 日期时间转换为纪元

使用 strftime('% 将 Python 日期时间对象转换为纪元以来的秒数时s') 格式,您可能会遇到意想不到的结果。您可能会得到一个相差一小时的值,而不是距纪元的正确秒数。这是因为 strftime 会考虑系统时区并应用时区转换。

解决方案:

要避免此问题并获取正确的纪元时间戳,有多种选项可用:

Python 3.3 和稍后:

  • 使用 timestamp() 方法:

    >>> datetime.datetime(2012, 4, 1, 0, 0).timestamp()
    1333234800.0

Python 3.2 或更早版本:

  • 执行转换明确:

    >>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
    1333238400.0

避免使用 strftime('%s'):

需要注意的是,%s 不受官方支持通过Python的strftime函数。其功能取决于系统的 strftime 实现,该实现可能因不同平台而异并引入时区差异。因此,建议使用上述方法进行准确的纪元时间戳转换。

以上是如何准确地将Python日期时间对象转换为纪元时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn