Ответ 1
Когда вы напрямую ссылаетесь на части времени datetime, такие как %I
или %M
, он использует его прямо, как без преобразования локали. Если вы включили %Z
, вы увидите, что время находится в UTC
. Если вам нужны результаты, соответствующие локали, вам нужно использовать более ограниченный %X
, который просто выплюнет полное время, преобразованное для локали.
Если вам нужно больше, вам нужно будет его преобразовать:
from django.utils import timezone
def shortDescription(self):
class_date = timezone.localtime(self.class_date)
return self.name + ' ' + class_date.strftime("%I:%M")
Или вы можете положиться на фильтр date
, который автоматически сделает это для вас:
from django.template import defaultfilters
def shortDescription(self):
return self.name + ' ' + defaultfilters.date(self.class_date, 'g:i')