例のあれ(仮題)

むしろ一昨日参ります。

Google App EngineのタイムゾーンがUTCなので。 - 2008/4/17 (木) p.m.09:59 -

 Types and Property Classes - Google App Engine - Google Code
 pytz - World Timezone Definitions for Python
 Time zones in Google App Engine

 日付変更線に近いところへお住まいの我々は困りますよね。や、別に困りはしませんが、面倒ですよね。って事で、変換しております。

 最初、

timestamp + datetime.timedelta(hours=9)

 なんて事をやっていたのですけど、「あんまりだなぁ」と思ってGoogleさんのドキュメントを参考にpytzを使って

timestamp.replace(tzinfo=pytz.utc).astimezone(pytz.timezone(settings.TIME_ZONE))

 なんてやっていて、「settings.pyで設定したTIME_ZONEの値を使えるのがいいよ、なんかたくさん無駄なリソースが入っちゃうけど」と思っていたところへ某方面からヒントとか言って送りつけられたページ(←三つ目のURL)のソースをパクって落ち着いたのが、

import datetime

class UtcTzinfo(datetime.tzinfo):
    def utcoffset(self, dt):
        return datetime.timedelta(0)

    def dst(self, dt):
        return datetime.timedelta(0)

    def tzname(self, dt):
        return 'UTC'

    def olsen_name(self):
        return 'UTC'

class JstTzinfo(datetime.tzinfo):
    def utcoffset(self, dt):
        return datetime.timedelta(hours=9)

    def dst(self, dt):
        return datetime.timedelta(0)

    def tzname(self, dt):
        return 'JST'

    def olsen_name(self):
        return 'Asia/Tokyo'

def jst_date(value):
    if not value:
        value = datetime.datetime.now()

    value = value.replace(tzinfo=UtcTzinfo()). \
        astimezone(JstTzinfo())
    return value

 で、モデルの方にこのメソッドを呼び出すメソッドを書いて(return hoge.jst_date(self.created)とか)、そのメソッドをテンプレートの方でDjangoのfilterを噛まして({{ object.jst_created|date:"Y/m/d H:i:s" }}とか)表示させてます。

 まー、こんなものでひとつ。

2008 - 9 8 7 6 5 4 3 2 1

2007 - 12 11 10 9 8 7 6 5 4 3 2 1

2006 - 12 11 10 9 8 7 6 5 4 3 2 1

2005 - 12 11 10 9 8 7 6 5 4 3 2 1

2004 - 12 11 10 9 8 7 6 5 4 3 2 1

2003 - 12 11 10 9 8 7 6 5 4 3 2 1

2002 - 12 11 10 9 8 7 6 5 4 3 2 1

“ひとりごと”的な(Twitter

    Googleさんでけんさく

    Google

    このページと私のコト

    長崎市在住おそらくWeb系エンジニア“たくぅ”さんが適当に適当な事を書いているページです。
    色んな方面から脱ニートしました。

    Mii

    Skype: reiare

    “れいあれ”ふぁみりー
    Touch! れいあれ
    例のtumblr
    あさましいあれ(仮題)

    当blogのソースを公開中
    +++ download +++
    (Python 2.5.1 + Django 0.96用)

    自動更新バナー

     iTunes Store(Japan)

    ↑でもCD購入派なんだよね、私。