Django модель datetime с временной зоной UTC+1 сохраняется как UTC+0
В моем проекте django есть модель, в которой я храню данные (в поле read_date) с полем DateTime для хранения даты (с часовым поясом):
class Results(models.Model):
id = models.AutoField(primary_key=True)
device = models.ForeignKey(Device, null=True, on_delete=models.SET_NULL)
proj_code = models.CharField(max_length=400)
res_key = models.SlugField(max_length=80, verbose_name="Message unique key", unique=True)
read_date = models.DateTimeField(verbose_name="Datetime of vals readings")
unit = models.ForeignKey(ModbusDevice, null=True, on_delete=models.SET_NULL)
я установил в файле settings.py временную зону:
TIME_ZONE = 'UTC+1'
USE_TZ = True
Итак, проблема в том, что когда я передаю исправленное форматированное ditetime с часовым поясом UTC+1 в виде:
2021-11-12 10:39:59.495396+01:00
в моей базе данных я получаю:
2021-11-12 9:39:59.495396+00
Почему мое хранимое значение UTC+0 вместо использования переданного часового пояса?
Заранее большое спасибо
Все даты-время хранятся в UTC. Это не ошибка, а особенность. Базе данных нужен один формат для обработки данных DateTime при сортировке, выборе, фильтрации и т.д. Поэтому, когда вы делаете некоторые SQL-запросы, вы можете передать нужный часовой пояс для автоматической конвертации. Например, ваш первый пользователь в UTC+1 и вы можете делать запросы, используя этот параметр, другой пользователь UTC-9, и результаты могут быть другими.