Почему Django ORM выполняет операции над моим полем timestamp, даже если я не установил TIME_ZONE и USE_TZ в моем settings.py

Django ORM, похоже, конвертирует мою метку времени странным образом, и я не уверен, почему.

В настоящее время в нашем приложении нет настроек TIME_ZONE и USE_TZ. До сих пор не было никакой необходимости, поэтому мы не использовали их.

Теперь я пытаюсь показать некоторые специфические детали временной метки, в то время как у нас нет настроек, указанных выше

Вставка в базу данных (postgresql) работает нормально. Поле, которое я использую, timestamp с часовым поясом. В моей локальной БД установлен часовой пояс "Asia/Singapore"

db значение: "2022-07-01 23:09:14.253877+08" что правильно.

Теперь, если я попытаюсь извлечь это значение, то получу от объекта Django следующее: 2022-07-01 10:09:14.253877. что совершенно не соответствует UTC.

Значение временной метки было преобразовано в другой часовой пояс (например, для MST, который составляет -7 от UTC). Но на самом деле это не следует какому-либо шаблону, поскольку у меня также были некоторые тестовые данные, добавленные в 1:11:00PM, но метка, полученная из Django ORM, была 00:11:28.848820

Подводя итог, мой вопрос заключается в том, как Django ORM обрабатывает значение временной метки, если параметры TIME_ZONE и USE_TZ не настроены. Я наивно полагал, что он получит значение как есть из базы данных, но, похоже, это не так.

Я не включил никакой код, потому что я не делал никаких манипуляций с данными на полученных объектах Django. Я просто делаю простой Object.filter(), но дайте мне знать, если я упустил какую-либо информацию, которую необходимо предоставить.

Вернуться на верх