Сохранение времени даты в базе данных mysql на основе часового пояса Азии/Тегерана

У меня есть проект Django, в котором я использовал поле DateTime в одной из его моделей.

В этом поле базы данных я хочу сохранить дату и время этого момента.

Кроме того, моя база данных имеет тип mysql и находится на сервере.

Прежде всего, я установил настройки Django.

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Tehran'
USE_I18N = True
USE_TZ = True

Кроме того, чтобы быть уверенным, я отредактировал модель базы данных следующим образом.

class Register(models.Model):
    card = models.ForeignKey(Card, on_delete=models.CASCADE, db_index=True)
    member = models.ForeignKey('member.Members', on_delete=models.CASCADE, db_index=True)
    field = models.ForeignKey(Field, on_delete=models.CASCADE)
    start_date = models.DateTimeField(null=True, blank=True)
    end_date = models.DateTimeField(null=True, blank=True)
    session_count = models.IntegerField(null=True, blank=True)
    is_active = models.BooleanField(default=True)

    def save(self, *args, **kwargs):
        tehran_tz = pytz.timezone('Asia/Tehran')
        if self.start_date:
            self.start_date = self.start_date.astimezone(tehran_tz)
        if self.end_date:
            self.end_date = self.end_date.astimezone(tehran_tz)
        super(Register, self).save(*args, **kwargs)

Я также установил часовой пояс в базе данных с помощью следующей команды.

SET GLOBAL time_zone = 'Asia/Tehran';
SET time_zone = 'Asia/Tehran';

Результат выполнения следующей команды в базе данных выглядит следующим образом. SHOW VARIABLES LIKE 'time_zone';

Result

Интересно то, что когда я печатаю время и дату в терминале, она отображается правильно, но когда я сохраняю ее в базе данных, она сохраняется как UTC.

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