2012-04-05 3 views
1

[편집] 그리고 가장 우아하게 추가해야합니까? 내가 생각하기에 (그러나 확실하지는 않지만) 파이썬 코드의 결과를 처음부터 끝까지 반복하고 각 날짜를 형식화 할 수 있지만 한 번만 반복하면됩니다. [\ 편집]내 GQLQuery의 날짜 필드를 다른 시간대로 쉽게 포맷하려면 어떻게해야합니까?

내 경우에는 British Summer 시간 (그냥 최근에 찼습니다).

현재 최상위 직접 형식 날짜가 맞지만 결과의 개별 행에있는 날짜는 여전히 UTC (1 시간 뒤)입니다.

다음

Time is now: 13:42 on 05 April, 2012

2012-04-05 13:10:00 Event 234

2012-04-05 13:10:00 Event 235

2012-04-05 13:10:00 Event 236

...

내가 뭘하는지의 ...

from pytz.gae import pytz # N.B. Using the recommended version of pytz 
from datetime import datetime 

# Use datetime now (in UTC) to select upcoming events (also stored in UTC) 

nowat = datetime.now() 
upcoming_events = db.GqlQuery(
    "SELECT * FROM Event WHERE eventdatetime >= :1",nowat) 

# Convert time to BST and print to string… 

utc = pytz.timezone('UTC') 
nowat = utc.localize(nowat) 
bst = pytz.timezone('Europe/London') 
timenow = nowat.astimezone(bst).strftime("%H:%M on %d %B, %Y") 

# Pass results to template for formating… (this is the Django engine) 

template_values = { 
     'time' : timenow, 
     'events' : upcoming_events 
} 
path = os.path.join(os.path.dirname(__file__),'html','today.html') 
self.response.out.write(template.render(path,template_values)) 

I : 예 출력 (이 경우 datetime.now에 의해 반환 UTC가 12시 42분입니다) 같이 보이는 템플릿 페이지입니다 템플릿 코드에서 비슷하게 적용 할 수있는 마법이 있다고 생각합니다. 그러나 datebuilt-in은 UTC에서 날짜/시간 변환을 허용하지 않는 것으로 보입니다.

템플릿은 다음과 같습니다 장고의 템플릿 엔진

<html> 
    <head> 
    <link type="text/css" rel="stylesheet" href="/css/main.css" /> 
    </head> 
    <body> 
    <p>Time is now: {{ time }}</p> 
    <table> 
     {% for event in events %} 
     <tr> 
      <td> {{ event.eventdatetime }} </td> 
      <td> {{ event.name }} </td> 
     </tr> 
     {% endfor %} 
    </table> 
    </body> 
</html> 

답변

1

, 당신은 문서에서 Time zone aware output in templates

사용 예를 사용할 수 있습니다 보인다

{% load tz %} 

{% timezone "Europe/Paris" %} 
    Paris time: {{ value }} 
{% endtimezone %} 

{% timezone None %} 
    Server time: {{ value }} 
{% endtimezone %} 
+0

우수 -하지만 불행히도 나는 그것을 시도하고 있어요 this :'TemplateSyntaxError : 'tz'은 유효한 태그 라이브러리가 아닙니다 : django.templatetags.tz에서 템플릿 라이브러리를로드 할 수 없으며 tz'라는 모듈이 없습니다 - 그래서 어떤 모듈인지 모르겠습니다. GAE는 ... – timlukins

+1

이 포함되어 있지 않다면 django 소스 코드를 가져 와서 여기에 설명 된대로 자신의 템플릿 태그에 붙여 넣을 수 있습니다 : http://4.flowsnake.org/archives/459 – Hoff

+0

Thanks. 그게 효과가 있었어. 'tz'태그 코드를 깨는 고통의 비트. – timlukins

관련 문제