[Rails]Time.nowとTime.currentの違い

Time.now

RubyのTimeクラスに存在するメソッド。環境変数のタイムゾーンを使用する。

Time.current

TimeWithZoneのインスタンスが返される。application.rbのタイムゾーンが使用される

使用するタイムゾーンの違いによる影響

日本に住んでいる人しか使わないシステムの場合は、特に影響を受けない。 海外に住んでいる人が使う場合、環境変数のタイムゾーンが現地時間になってしまう可能性があるので、TimeWithZoneクラスを使ったほうが良い。

なので、 Time.now ではなく Time.current を使ったほうが良い。

Rails/TimeZone

rubocopで Time.now を使わないように制御することもできる

# bad
Time.now
Time.parse('2015-03-02T19:05:37')

# good
Time.current
Time.zone.now

Rails/TimeZone

【参考】