跳到内容

call-datetime-without-tzinfo (DTZ001)

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

作用

检查未指定时区的 datetime 实例化。

为什么这不好?

默认情况下,datetime 对象是“幼稚的”,因为它们不包含时区信息。“幼稚的”对象很容易理解,但忽略了现实的某些方面,这可能会导致细微的错误。建议使用时区感知的 datetime 对象,因为它们代表时间中的特定时刻,这与“幼稚的”对象不同。

通过为 tzinfo 提供非 None 值,可以将 datetime 设置为时区感知。

示例

import datetime

datetime.datetime(2000, 1, 1, 0, 0, 0)

建议改为

import datetime

datetime.datetime(2000, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc)

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

import datetime

datetime.datetime(2000, 1, 1, 0, 0, 0, tzinfo=datetime.UTC)