[ GAE Google App Engine ][ Phthon ][ Google Bigtable ]
日時のデータに関していくつか。
・タイムゾーンについて
db.modelの日時に関するプロパティで
「auto_now_add=True」「auto_now=True」を設定すると
すべて世界協定時刻(UTC)が保存される。
「キャッチ&リリース(ベータ版)」では、「締切」を入力するようになっているため、
日本時間の締切を入力するのが当り前であるが、
更新日時、登録日時は世界協定時刻(UTC)なのである。
この違いの解決方法としては、
データはすべて世界協定時刻(UTC)で保存し、
表示するときに、日本であれば、日本標準時(JST; GMT+09:00)表示に
変換するというのが正しいやり方のようだ。
ちなみに、入力した日時は、世界協定時刻(UTC)に変換しなければならない。
参考:はしっこの、そのへん「Google App Engine再び」
今回のシステムでは、変換は行っていない。
なぜなら、今後、世界規模でプロジェクトを実行することは容易に想定できるからである。それであれば、日時の基準を世界にひとつにした方がよい。
このシステムはWebである以上、日本時間が基準とはいえないのだから。
(日本語で作ってはありますが・・・)
日本にいる人間は、「現在の時間 プラス 9時間」という前提で、締切を決めたり、
作業を行えばよいのである。人間側で対応すべき問題である。
データの登録、更新処理の全ての処理に
この変換をいれるのが大変だから、と理由では断じてない!
・日時の整合性について
「締切日が現在より、未来であること」
「開始日と、完了日がひっくりかえらないこと」
といったチェック機能を入れようとしたが、やめた。
チェックは人間がする。そして、間違いに気づいたら人間が直す。
・日時の表示の変更について
HTMLページで、DateTimeデータを表示させると
「 2009-10-14 14:00:18.156817 」
のようにわけのわからない数字が、最後に入ってしまう。
表示形式の指定方法を変更するには、以下のようにする。
変更前「 2009-10-14 14:00:18.156817 」
{{ data.add_date}} と指定
変更後「 2009-10-14 14:00:18 」
{{ data.add_date|date:”Y-m-d H:m:s” }} と指定
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」
http://sanpiryoron.appspot.com/
協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/