Python Glossary English

все Python 3устарело в 3.12datetimeфункция

datetime.datetime.utcnow()

datetime

Возвращает текущее время UTC, но БЕЗ tzinfo (naive) — из-за этого его легко спутать с локальным. Устарел с Python 3.12: используй datetime.now(timezone.utc).

Синтаксис

from datetime import datetime
datetime.utcnow()  # deprecated, 3.12+

Опаснее самого устаревания то, что naive-результат дальше молча считается локальным временем: utcnow().timestamp() или сравнение с datetime.now() уезжают ровно на величину вашего часового пояса. Правильная реакция при встрече в чужом коде — заменить на datetime.now(timezone.utc), помня, что у нового объекта появится tzinfo и в isoformat() допишется '+00:00'.

Примеры

from datetime import datetime, timezone
old = datetime.utcnow()  # naive, устарело
print(old.tzinfo)  # → None (нет пояса!)
new = datetime.now(timezone.utc)  # современный аналог
print(new.tzinfo)  # → UTC

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности