В Ruby/направляющих, как я преобразовываю UTC DateTime в другой часовой пояс?
time.in_time_zone(time_zone)
Пример:
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)
или просто
Time.now.in_time_zone("Central Time (US & Canada)")
Вы можете найти названия часовых поясов ActiveSupport, выполнив:
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
Попробуйте объекты ActiveSupport TimeWithZone , управляемые с помощью TimeZone. ActiveSupport также предоставляет метод in_time_zone для преобразования времени UTC в указанный часовой пояс TimeZone. Ответ mckeed показывает код.