#author("2017-06-19T13:41:44+09:00","default:wikiwriter","wikiwriter") #author("2017-06-19T13:43:45+09:00","default:wikiwriter","wikiwriter") &tag(Rails/日付と時刻); *目次 [#j1e494e5] #contents *関連ページ [#n862fb3a] *参考情報 [#wa53684f] -[[RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita:http://qiita.com/jnchito/items/cae89ee43c30f5d6fa2c]] -[[ついにRoRの日付の闇を払った - Qiita:http://qiita.com/shingo-nakanishi/items/573e76403b5c0faa7a56]] *基本 [#z97c3fef] -Railsでは基本TimeWithZoneを使う。 -Rubyの基本ライブラリであるTimeも拡張されていて、例えばTime.currentや、Time.zone.nowは、TimeWithZoneクラスのインスタンスを返す。Time.nowはTimeクラスのインスタンスのまま #pre{{ irb(main):003:0> p Time.now.class Time => Time irb(main):004:0> p Time.current.class ActiveSupport::TimeWithZone => ActiveSupport::TimeWithZone }} -TimeWithZoneはrailsのタイムゾーン設定を使用する。 -DateTimeクラスは特に理由がなければつかわない。 *差分 [#hcb8a34d] -Timeの差分はFloatを返す #pre{{ irb(main):005:0> t1 = Time.local(2017, 5, 1) => 2017-05-01 00:00:00 +0900 irb(main):006:0> t2 = Time.local(2017, 5, 2) => 2017-05-02 00:00:00 +0900 irb(main):007:0> diff = t2 - t1 => 86400.0 irb(main):008:0> p diff.class Float => Float }}