跳到内容

call-datetime-utcfromtimestamp (DTZ004)

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

作用

检查 datetime.datetime.utcfromtimestamp() 的使用情况。

为什么这不好?

Python datetime 对象可以是 naive (朴素型) 或 timezone-aware (时区感知型)。虽然一个时区感知型对象表示一个特定的时间点,但一个朴素型对象不包含足够的信息来明确地定位它与其他 datetime 对象的关系。由于这可能导致错误,建议始终使用时区感知型对象。

datetime.datetime.utcfromtimestamp() 返回一个朴素型 datetime 对象;相反,使用 datetime.datetime.fromtimestamp(ts, tz=...) 来创建一个时区感知型对象。

示例

import datetime

datetime.datetime.utcfromtimestamp(946684800)

建议改为

import datetime

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

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

import datetime

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

参考