最近になって Google App Engine を使っています。データの保存時に時刻情報を入れるために DatetimeProperty を使うのですが、保存時に日本標準時になるように tzinfo をセットしても思うようにならずウンウンうなっていたのですが、
型とプロパティ クラス - 日付と時刻プロパティに「日付と時間の値が保存されるときも返されるときも UTC タイムゾーンが使用されます。」と明記されていました。なるほど。
なるほどと思って落ち着いた後に、ふと向かいの席に座っている
スティーブさんにアメリカ人に取ってのタイムゾーンの扱いってどんなもんなのか尋ねてみました。僕はあまり何も考えずに UTC と自分の生活している場所のタイムゾーンについてだけ聞いたつもりだったのですが、「アメリカは国内だけで複数のタイムゾーンがあって、 DST があったりなかったりなのでいろいろとややこしい。なので基本的には保存するときは UTC で、どこかのタイムゾーンで表示してオフセットを表示したり..」などなどという話を聞きました。この辺の感覚ってタイムゾーンが単一の国(日本とか中国も)の人とは違うんだろうなあと思いました。
で、あらためて、 Twitter のタイムラインや Facebook のニュースフィードの時刻の表記が「○秒前」「○分前」「○時間前」となっているのは、タイムゾーンがまちまちの情報が混ざって表示されるときにはすごく有効なんだなと気付きました。正確な時刻とタイムゾーンとかオフセットが表示されていても、それが自分の生活圏においては何時なのかはすぐにわかりにくいし、だからと言っていちいち自分の生活圏のタイムゾーンに置き換えて変な時間が表示されるよりは、単に「今からどれくらい前か」ということで充分なんだなと。
そんなことをぼやぼや考えながら Django のテンプレートのフィルタリファレンスを見ていると
timesinceというのがあるのに気付いてさらに驚いたり。