2017-09-21 2 views
0

장고에서 유닉스 타임 스탬프에서 현지 시간으로 어떻게 포맷합니까? 시간 템플릿 필터가 작동하지 않는 것으로 나타납니다.Django에서 유닉스 타임 스탬프를 현지 시간으로 어떻게 포맷합니까?

{{ unix_time_value|time:"TIME_FORMAT"}} 

올바른 방법은 무엇입니까?

+0

템플릿 필터를 사용하여 'datetime.datetime.fromtimestamp'와 함께보기에서. 하지만 당신이 장고의 분리를 물리 칠 수 있고 그것을 수행하는 템플릿 필터를 작성할 수 있다고 가정합니다. – chicocvenancio

답변

0

날짜 시간 객체로 유닉스 타임 스탬프를 변환하는 필터 추가 :

from django import template 
register = template.Library() 

@register.filter(name='unix_to_datetime') 
def unix_to_datetime(value): 
    return datetime.datetime.fromtimestamp(int(value)) 

을 한 다음 사용할 수 있습니다

{{ unix_time_value|unix_to_datetime|time:"TIME_FORMAT"}}

Django documentation

+0

builtins.NameError : 'register'이름이 정의되지 않았습니다. 등록을 위해 가져올 것을 말하지 않은 문서. – komodoedit

+0

내 답변을 편집하고 간결하게하기 위해 두 줄을 추가했습니다 :'django import template; register = template.Library()' – Oliver

0
에서 사용자 정의 템플릿 태그에 대해 자세히

타임 스탬프는 플로트 가능성이 높습니다.이 경우 먼저 타임 스탬프를 datetime 객체로 변환해야합니다 .

그런 다음 선택적으로 당신은 현재/기본 시간대에 따라 시간대 인식되는에 날짜 개체를 변환하는 장고의 timezone을 사용할 수 있습니다 ... 또는 단순히 당신이 그렇게해야 확실 해요

import datetime 
from django.utils import timezone 
dt = datetime.datetime.fromtimestmp(my_unix_timestamp) # convert to datetime 
# optionally 
tz_dt = timezone.make_aware(dt, timezone.get_default_timezone())