В настоящее время я работаю над проектом Django с DB постгерра. Данные, хранящиеся в db с отметкой времени с использованием наивного времени (локальное время пользователя). Однако в setting.py, мы имеемDjango Часовой пояс UTC
USE_TZ = True
, что означает все временные отметки, извлекаемые Django ORM преобразуются в UTC.
Как правило, это нормально. Однако для функции, которую я создаю прямо сейчас, нужно время в реальном времени (местное время uesr). Конечно, я бы взял данные и преобразовал время в любое время, когда захочу, с двумя проблемами: 1. Я могу конвертировать временные метки в EST или что-то еще, но я до сих пор не знаю оригинального времени; 2. Я хочу сделать преобразование во время запроса ORM, а не после, так как оно будет более эффективным.
У кого-нибудь есть ключ к этому поводу? Спасибо заранее!
В зависимости от вашего проекта может быть целесообразно преобразовать его в локальное время на клиенте (используя javascript) – goncalopp
@goncalopp: Я имею дело с проблемой на стороне клиента. Я пытаюсь проанализировать таблицу журналов db (таблица журналов определяется мной). В журнале есть поле timestamps, которое записывает время, когда что-то произошло на стороне клиента. Я хочу это время, но django дает мне UTC. Я могу получить это время через psql или django raw query, но не django orm. Мне нужен способ конвертировать все время в исходное время, когда или до того, как я начну выполнять запрос orm. –