1. ホーム
  2. ruby-on-rails

[解決済み] Railsでタイムゾーンを変換する

2022-11-04 13:23:57

質問

私の場合 created_at のタイムスタンプは UTC で保存されます。

>> Annotation.last.created_at
=> Sat, 29 Aug 2009 23:30:09 UTC +00:00

これらのうち1つを「東部時間(US & Canada)」に変換するにはどうすればよいでしょうか(サマータイムを考慮します)。みたいな感じです。

Annotation.last.created_at.in_eastern_time

どのように解決するのですか?

DateTimeクラスのin_time_zoneメソッドを使用します。

Loading development environment (Rails 2.3.2)
>> now = DateTime.now.utc
=> Sun, 06 Sep 2009 22:27:45 +0000
>> now.in_time_zone('Eastern Time (US & Canada)')
=> Sun, 06 Sep 2009 18:27:45 EDT -04:00
>> quit

つまり、あなたの特定の例では

Annotation.last.created_at.in_time_zone('Eastern Time (US & Canada)')