コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

時刻を文字列からParseするときはTime.zone.parseが一番オススメ

ローカルマシンでは露見せず、アップすると露見する系なので、思わぬ事故を防ぐために。

環境

rails (5.2.0)

何故オススメなのか

原理としては Time.zone.now と同じなのですが、 Time.parse を使うとRailsに設定されているタイムゾーンは配慮されないので、Time.zone.parse を使ったほうが間違いがないよねという話。

# タイムゾーンの確認
Time.zone.name
#=> "Tokyo"

# 設定したい時間をセット
set_time = "2017-10-01 12:30:45"
#=> "2017-10-01 12:30:45"

Time.parse(set_time)
#=> 2017-10-01 12:30:45 +0000
Time.zone.parse(set_time)
#=> Sun, 01 Oct 2017 12:30:45 JST +09:00

関連リンク