RailsのTimeZone
TimeZoneに関してはしっかりポリシーを決めておかないとかなり面倒なことになりそうです。Qiitaの記事に詳しいですが、JST(日本標準時)一本で運用する場合ですら、MySQLとの絡みを考えると複雑です。むしろ、ここで無理にJSTに設定するよりもUTCに内部的に統一しておき、必要に応じてローカルタイムの表現に直すようにした方がよいのでは…という気もしてきましたが、一応JSTを使う場合の設定例を…(どっちやねん!という感じですみません)。
config/application.rb
config.time_zone = 'Tokyo'
config.active_record.default_timezone = :local
この状態でもまだ落とし穴があります。Timeクラスはシステムのタイムゾーンを考慮しますが、DateTimeはUTCでパースしてくれるんですねぇ。。
irb(main):001:0> Time.parse("2015-07-27 10:00:00")
=> 2015-07-27 10:00:00 +0900
irb(main):002:0> DateTime.parse("2015-07-27 10:00:00")
=> Mon, 27 Jul 2015 10:00:00 +0000
だけど、nowだとどっちもJSTになるんですねぇ。これってどういうポリシーなんでしょう?
irb(main):001:0> Time.now
=> 2015-07-27 15:59:05 +0900
irb(main):002:0> DateTime.now
=> Mon, 27 Jul 2015 15:59:03 +0900
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について