跳到内容

call-datetime-fromtimestamp (DTZ006)

添加于 v0.0.188 · 相关问题 · 查看源码

派生自 flake8-datetimez 代码检查器。

作用

检查是否使用了未指定时区的 datetime.datetime.fromtimestamp()

为什么这不好?

Python 的日期时间对象可以是“朴素的”(naive,即无时区信息)或“感知时区的”(aware)。虽然感知时区的对象表示特定的时间点,但朴素的对象包含的信息不足以明确其相对于其他日期时间对象的位置。由于这可能导致错误,因此建议始终使用感知时区的对象。

datetime.datetime.fromtimestamp(ts)datetime.datetime.fromtimestamp(ts, tz=None) 会返回一个“朴素”(naive)的 datetime 对象。请改用 datetime.datetime.fromtimestamp(ts, tz=<timezone>) 来创建一个包含时区信息的对象。

示例

import datetime

datetime.datetime.fromtimestamp(946684800)

建议改为

import datetime

datetime.datetime.fromtimestamp(946684800, tz=datetime.timezone.utc)

或者,在 Python 3.11 及更高版本中

import datetime

datetime.datetime.fromtimestamp(946684800, tz=datetime.UTC)

参考