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. Я не знаю, правильный ли это путь, потому что мои приложения (пока :)) живут в одном часовом поясе.

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