2014-11-08 3 views
2

Я получаю данные из базы данных и отправляю их в json на передний план. Теперь время хранится как UTC в базе данных, поэтому я хочу изменить часовой пояс и его форматирование, прежде чем отправлять данные в json на передний план. Изменение/преобразование времени в переднем конце не является вариантом.Django: Конвертировать UTC в локальный часовой пояс в 'Просмотры'

Что мне делать?

Примечание: я могу преобразовать в соответствующий часовой пояс и форматирование в Шаблонах. Однако я хочу сделать это сейчас в представлениях.

def fetchinfo(request): uid = int(request.user.id) data = UserLog.objects.filter(user_id=uid).values('event_id__description','time','ip_address') return JsonResponse({'status':'success','data':list(data),})

ответ

3

Я создал эту маленькую функцию, чтобы решить эту проблему в проекте:

import pytz 
from django.utils import timezone 


def convert_to_localtime(utctime): 
    fmt = '%d/%m/%Y %H:%M' 
    utc = utctime.replace(tzinfo=pytz.UTC) 
    local = utc.astimezone(timezone.get_current_timezone()) 
return local.strftime(fmt) 

и использовали как:

utcdate = convert_to_localtime(date_from_db) 

Я также установил это приложение: django-tz-detect

Смежные вопросы