使用 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中文网其他相关文章!