Сохранение времени даты в базе данных 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';
Интересно то, что когда я печатаю время и дату в терминале, она отображается правильно, но когда я сохраняю ее в базе данных, она сохраняется как UTC.