call-date-today (DTZ011)
派生自 flake8-datetimez 代码检查器。
作用
检查 datetime.date.today() 的使用。
为什么这不好?
Python 的 date 对象是“原生(naive)”的,即不包含时区信息。虽然感知(aware)对象代表特定的时间点,但原生对象不包含足够的上下文信息,无法在相对于其他日期时间对象时明确其自身位置。由于这可能导致错误,建议始终使用包含时区的对象。
datetime.date.today 返回一个不考虑时区的原生 date 对象。建议改用 datetime.datetime.now(tz=...).date() 来创建包含时区的对象,并获取其日期部分。
示例
建议改为
或者,对于 Python 3.11 及更高版本