🖥

Rails | String#to_datetime が現地タイムゾーンを付けてくれない対策

に公開

1. to_datetime だけの場合

現地のタイムゾーン情報が付加されない。

ENV['TZ'] = 'Asia/Tokyo'

'2016-09-06'.to_datetime
# => Tue, 06 Sep 2016 00:00:00 +0000

2. to_time を挟んだ場合

現地のタイムゾーン情報が付加される。

ENV['TZ'] = 'Asia/Tokyo'

'2016-09-06'.to_time.to_datetime
# => Tue, 06 Sep 2016 00:00:00 +0900

3. in_time_zone の場合

現地のタイムゾーン情報が付加されるが、フォーマットが異なる。

Time.zone = 'Tokyo'

'2016-09-06'.in_time_zone
# => Tue, 06 Sep 2016 00:00:00 JST +09:00

4. in_time_zone を挟んだ場合

現地のタイムゾーン情報が付加される。(2の結果と同じ)

Time.zone = 'Tokyo'

'2016-09-06'.in_time_zone.to_datetime
# => Tue, 06 Sep 2016 00:00:00 +0900

環境

  • ruby 2.3.0
  • Rails 2.4.6

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2016-08-20

Discussion