今回も簡単な記事。頭がタイムゾーン慣れしていないってのと今までJST以外での運用をやったことがなかったのでメモ。結論から言うとin_time_zoneはサマータイムも考慮してくれるので特に難しく考えなくてOK。



日本にもサマータイムがあった時期があったようだ

かつては日本にもサマータイムがあったようなので日本で実験する。railsコンソールを叩いて今日の日本の時刻を調べる。

irb(main):039:0> Time.local(2015,5,27).in_time_zone(‘Asia/Tokyo’)
=> Wed, 27 May 2015 09:00:00 JST +09:00

日本は標準時+9時間なので想定通りの結果が返る。ここで日本がサマータイムを導入していた1950年にタイムスリップしてみる。

irb(main):038:0> Time.local(1950,5,27).in_time_zone(‘Asia/Tokyo’)
=> Sat, 27 May 1950 10:00:00 JDT +10:00

するとサマータイムを考慮した結果が返ってくる。ちなみにdst?でサマータイムかどうかを調べられる。

irb(main):042:0> Time.local(1950,5,27).in_time_zone(‘Asia/Tokyo’).dst?
=> true

うむ。

各国で制度が変わってサマータイムの導入や廃止が決まったりしたら、zoneinfoやらTZInfoなどが追って更新されるんだろうね、きっと。

そうそう。余談だが「日本のプログラマは文字コードにはうるさいがタイムゾーンをガン無視する」という外国人のぼやきを聞いたことがある。ウェブサービスやネイティブアプリの開発運用に関わっていると二言めには「海外展開」という単語が出てくる昨今だと思うので、この世にはタイムゾーンとサマータイムという概念があることは意識しておいた方が良い。

おわり

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

Set your Twitter account name in your settings to use the TwitterBar Section.