跳到内容

call-datetime-today (DTZ002)

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

作用

检查 datetime.datetime.today() 的用法。

为什么这不好?

datetime 对象默认是“naive”的,也就是说它们不包含时区信息。“Naive”对象容易理解,但忽略了现实的某些方面,这可能会导致细微的错误。 推荐使用时区感知的 datetime 对象,因为它们代表特定的时间点,而“naive”对象则不是。

datetime.datetime.today() 创建一个“naive”对象; 应该使用 datetime.datetime.now(tz=...) 来创建一个时区感知的对象。

示例

import datetime

datetime.datetime.today()

建议改为

import datetime

datetime.datetime.now(tz=datetime.timezone.utc)

或者,对于 Python 3.11 及更高版本

import datetime

datetime.datetime.now(tz=datetime.UTC)