Python - форматирование времени с учетом часового пояса
У меня есть поле datetime с часовым поясом в моей модели в Django, определенное следующим образом:
created_at = models.DateTimeField(auto_now_add=True)
Хранится в базе данных следующим образом: 2022-08-12 09:41:13.815705+02
Я добавил свойство на эту модель для отображения пользовательского форматированного времени даты:
@property
def created_date(self):
date_obj = self.created_at.strftime("%Y-%m-%d %H:%M:%S")
return date_obj
Теперь он отображается следующим образом: 2022-08-12 07:41:13
Проблема заключается в двухчасовой разнице между сохраненным и отображаемым временем. Время хранится в центрально-европейском летнем времени (+2). Я хочу, чтобы отображаемое время показывало "9:41:13" вместо "7:41:13". Его нужно скорректировать в соответствии с часовым поясом пользователя. Как я могу это сделать?
Я использую:
@property
def created_date(self):
date_obj = (timezone.localtime(self.created_at)).strftime("%Y-%m-%d %H:%M:%S")
return date_obj
Но это только для некоторых логических операций в python, и pdf/xls рапортов. в шаблоне вы просто используете mymodel.created_at
его автоматическая локализация.
PS. Я не знаю, правильный ли это путь, потому что мои приложения (пока :)) живут в одном часовом поясе.