Как преобразовать время из UTC в PST в рельсах

Я использую приложение Ruby on rails, я получаю время в формате UTC из базы данных (т.е. в объекте активной записи). Я хочу преобразовать время в PST перед отображением в пользовательском интерфейсе. Я попытался сделать это dataFromDB = DataTable.find_by_sql("выберите время из таблиц данных"); dataFromDB[0].time = dataFromDB[0].time.in_time_zone("Тихоокеанское время (США и Канада)")

Но он не работает, он отображает то же время, то есть в формате UTC.


person Ajay    schedule 15.04.2014    source источник
comment
Разве вы не можете просто сохранить информацию о времени в формате UTC и использовать только метод in_time_zone в своем представлении, когда вы его отображаете?   -  person Marco Poli    schedule 15.04.2014


Ответы (1)


Для этого вы можете использовать метод in_time_zone. Что-то похожее на ниже

Time.parse("2014-09-12 04:49").in_time_zone('Pacific Time (US & Canada)')
person Saurabh    schedule 11.09.2014
comment
PST против PDT вы можете получить при различных обстоятельствах. - person ajbraus; 30.10.2014
comment
@ajbraus: я не понял, что ты пытаешься сказать. - person Saurabh; 31.10.2014
comment
@Saurabh - это означает, что в зависимости от того, произошло ли летнее время, вы получите либо PDT, либо PST. Если вы вызовете этот метод с 8 марта по 1 ноября, вы получите PDT; если вы вызовете этот метод со 2 ноября по 7 марта, вы получите PST. - person quetzaluz; 08.10.2015
comment
Но разве это не правильно тогда? При переходе на летнее время PDT является более подходящим временем. Я не уверен, почему @ajbraus проголосовал за ответ. - person Saurabh; 08.10.2015