Настройка: несколько сайтов на Django на одном наборе серверов, обслуживаемых одной и той же группой процессов Apache. Некоторые участки являются Восточной ТЗ; некоторые из них центральные. База данных - это PSQL, работающий на отдельном сервере.
Когда я начинал, я не особо задумывался о том, как различные сайты будут обрабатывать часовые пояса; Думаю, я увидел настройку TIMEZONE в Django и просто решил, что она «справится». Теперь я вижу трещины.
Первая проблема: кажется, что часовой пояс переключается между восточным и центральным. Насколько я понял из поиска на этом сайте, это связано с тем, что переменная os environ для TZ устанавливается для процесса Apache в зависимости от того, для какого сайта Django он обрабатывает запрос, и если этот процесс затем обрабатывает запрос для сайта на другом ТС, часовой пояс неверный. Я считаю, что решение, которое я нашел здесь, заключалось в том, что сайты в разных часовых поясах должны иметь разные группы процессов, обслуживающие их. Пожалуйста, исправьте, если неправильно.
Вторая проблема: локально в Linux я запустил сервер запуска ./manage.py с одного из моих сайтов с центральным временем (я нахожусь в Восточном). Я создал актив, дата публикации которого корректно отображается как отставание на один час в админке. Глядя на фактическую запись PostgresSQL, часовой пояс даты публикации по-прежнему указан как -04. Использует ли Postgres часовой пояс самого сервера/компьютера и игнорирует любые настройки TZ в Django? Таким образом, все записи, сохраненные на сервере Postgres по восточному времени, будут отображаться как -04 или -05 в зависимости от летнего времени?
Если кто-то сталкивался с чем-то подобным, буду признателен за совет. Даже если я разделю процессы Apache для центральных сайтов так, чтобы их настройки TZ не пересекались, мне все равно придется иметь дело с проблемой Postgres. И тогда мне любопытно; если отметка времени PSQL является центральной, а параметр TZ - восточным, скажем, учитывают ли поля даты и времени TZ? то есть, если вы выполняете datetime.datetime.now(), когда для Django установлено значение EST, и оно возвращает 14:00, то у вас есть фильтрация контента по дате публикации, которая меньше этого результата, будет ли он учитывать TZ только ищете контент, время публикации которого было 13:00 CST или раньше?