Проблемы с часовым поясом Джанго

У меня возникают трудности с получением результатов запроса в моем собственном часовом поясе. например: определение поля модели:

some_datetime_field= models.DateTimeField(null=True)

Запрос:

MyModel.values_list("some_datetime_field",flat=True).first()

возвращается

datetime.datetime(2019, 11, 5, 14, 56, 16, tzinfo=<UTC>)

вместо возвращения

datetime.datetime(2019, 11, 5, 6, 56, 16, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)

Я работаю с python V3.7.5, Django V2.2.7 и PostgreSQL V12 в качестве моей базы данных. В моей настройке у меня есть:

TIME_ZONE = "America/Los_Angeles"
USE_TZ = True
USE_I18N = True
USE_L10N = True

В документации говорится о настройках «TIME_ZONE»: https://docs.djangoproject.com/en/2.2/ref/settings/#time-zone

Если USE_TZ имеет значение True и база данных поддерживает часовые пояса (например, PostgreSQL), установка этого параметра является ошибкой.

поэтому я попытался удалить TIME_ZONE из своей настройки:

USE_TZ = True
USE_I18N = True
USE_L10N = True

но это тоже не сработало, даже хуже, когда я пытаюсь локализовать его с помощью timezone.localtime(datetime_example), я получаю время по чикагскому времени:

datetime.datetime(2019, 11, 5, 8, 56, 16, tzinfo=<DstTzInfo 'America/Chicago' CST-1 day, 18:00:00 STD>)

Как настроить запрос, чтобы он возвращал дату и время в выбранном мной часовом поясе, а не в формате UTC?


person jadeix    schedule 18.11.2019    source источник
comment
Оставьте TIME_ZONE (не обращайте внимания на предупреждение), а затем отметьте timezone.localtime.   -  person heemayl    schedule 19.11.2019
comment
Да, я сделал это, но набор запросов не возвращает местный часовой пояс (как вы можете видеть в первой части вопроса с настройкой TIME_ZONE). он возвращает только UTC.   -  person jadeix    schedule 19.11.2019
comment
Он сохраняется и извлекается как UTC. Вам нужно сделать необходимые преобразования самостоятельно.   -  person heemayl    schedule 19.11.2019
comment
Пожалуйста, прочитайте stackoverflow.com/questions/33247854/. Аналогичному случаю есть объяснение.   -  person Ivan Markeev    schedule 19.11.2019
comment
Спасибо @IvanMarkeev, это было очень полезно. Я искал такое решение некоторое время. спасибо, что указали на это.   -  person jadeix    schedule 19.11.2019