[編集]そして、最もエレガントに追加する必要がありますか?私は(しかし、どのように)私はちょうど一回ループをしたいと思いますが、私はちょうど一回ループしたいが、Pythonコードで最初に結果をループすることができますね... [0120時間(ちょうど最近蹴られた)。GQLクエリの日付フィールドを別のタイムゾーンに簡単にフォーマットするにはどうすればいいですか?
私の一番上の直接形式の日付は正しいものの、結果の個々の行の日付はまだ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である。)このようになりますテンプレートページですテンプレートコードでも同様に適用できるいくつかの魔法があるかもしれないと考えましたが、date
built-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>
優秀に見える - 残念ながら、私はそれを試してみましたが、得ましたこれは: 'TemplateSyntaxError: 'tz'は有効なタグライブラリではありません:django.templatetags.tz、tz'という名前のモジュールからテンプレートライブラリを読み込めませんでした。 GAEは... – timlukins
が含まれていない場合は、そのタグのdjangoソースコードを取得し、独自のテンプレートタグに貼り付けることができます(http://4.flowsnake.org/archives/459 – Hoff
ありがとう)。それはうまくいった。 'tz'タグコードを壊す痛みのビット。 – timlukins