スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--------(--)
 

Google App Engine 日本時間(JST)での表示[python]方法

2011.2/25


「前回」に引き続きGAE(Google App Engine)の話です。Google App Engineで普通に時間を取得すると「UTC=協定世界時」を取得します。つまり9時間ほど時差があるわけです。ということでpythonプログラムに今の時間を表示しようとすると9時間のズレがあって気持ち悪いので「JST=日本標準時」に直して表示します。


時間の表示方法はいくつかあるみたいなので,いろんなページを参考にするといいと思います。自分が参考にさせていただいたのは「ここ」です。とても助かりました☆

(3)にプログラム全体を載せています。
(1)前回に引き続きってことで「C:¥Google_Apps¥guestbook」というアプリがあるとします。guestbookは前回紹介した「ここ」で作ってるやつです。たしか,インストールしたgoogle_appengine¥demosフォルダの中にも入っています。自分はyoutubeをマネして自分で書きました。

(2)「C:¥Google_Apps¥guestbook¥main.py」を編集します。
import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp \
    import template
import datetime  #←追記

#####ここから追記
class JST(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 get(self):の最終行に追記を行います
def get(self):   ##youtube通りに作ったのなら30~40行の間くらいにある
・・・
・・・  ##まぁ省略しときます
・・・
#####ここから追記
#↓でJSTでの時間表示
        d= datetime.datetime.now() + datetime.timedelta(hours=9)
        write = self.response.out.write
        write('%s' % d.strftime("%Y/%m/%d %H:%M:%S") )
####ここまで

(3)最終的なプログラムを載せておきます。「C:¥Google_Apps¥guestbook¥main.py」
#!/usr/bin/env python
#・・・省略
import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp \
    import template
import datetime

class Shout(db.Model):
    message = db.StringProperty(
                required=True)
    when = db.DateTimeProperty(
                auto_now_add=True)
    who = db.StringProperty()

#これ必要ないみたいww
class JST(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"

class MyHandler(webapp.RequestHandler):
    def get(self):
        shouts = db.GqlQuery(
            'SELECT * FROM Shout '
            'ORDER BY when DESC')
        values = {
            'shouts': shouts
        }
        self.response.out.write(
            template.render('main.html',
                            values))
        #↓でJSTでの時間表示
        d= datetime.datetime.now() + datetime.timedelta(hours=9)
        write = self.response.out.write
        write('%s' % d.strftime("%Y/%m/%d %H:%M:%S") )

    def post(self):
        shout = Shout(
            message=self.request.get(
                'message'),
            who=self.request.get(
                'who'))
        shout.put()
        self.redirect('/')

def main():
    app = webapp.WSGIApplication([
        (r'.*',MyHandler)], debug=True)
    wsgiref.handlers.CGIHandler().run(app)

if __name__ == "__main__":
    main()

ではでは。
スポンサーサイト
2011-02-25(Fri)
 

コメントの投稿

非公開コメント


MAxUraのプロフィール

MAxUra

名前:MAxUra
年齢:学生です。
趣味:ネットサーフィン
           DVD鑑賞
特徴:さまぁ~ずファンです
          Linux初心者です

Win,Linux,フリーソフト関連のメモを載せる予定です

 現在はWindows7 64bitを使用しています(2010年3月までは自分のPCはvistaなのでフリーソフトは基本vistaで動作済みってことになります)

コメント・相互リンク募集中です。

紹介してほしいソフトなどありましたら気軽にコメントやメールください♪

ブログ内検索フォーム
プログラミング関係
Black Cat Clock
メールフォーム

名前:
メール:
件名:
本文:

おすすめブラウザ
Firefoxをいつも使ってます
Firefox ブラウザ無料ダウンロード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。