Я относительно новичок в RoR, и у меня возникают проблемы с преобразованиями часового пояса. Когда вы получаете данные из базы данных (которая хранится в центральном времени США), она полагает, что время там есть в UTC и пытается их конвертировать, что делает их неправильными на 5 часов. У меня есть это в моем файле application.rb:Rails 3.1 Часовой пояс UTC и Центральный часового пояса
config.time_zone = 'Central Time (US & Canada)'
config.active_record.default_timezone = 'Central Time (US & Canada)'
Если удалить eiher одну из этих директив конфигурации, время не сохраняет корректно. Пока я их использую, время хранится в базе данных правильно, но RoR не может их правильно прочитать. Чтобы исправить это, мне нужно преобразовать все время, которое я получаю из базы данных в UTC. Я должен верить, что есть лучший способ.
Я также попытался установить ENV ['TZ'], но это, казалось, ничего не делало.
ENV['TZ'] = "US/Central"
Любая помощь будет воспринята.
Спасибо!
Есть ли вероятность, что вы делаете * разумную * вещь и меняете данные в самой базе данных, так что это все UTC? Хранение данных в одном конкретном (не-UTC) часовом поясе требует неприятностей - и это также потеряет информацию из-за переходов DST. –
К сожалению, дизайнерское решение из моих рук. Для этого проекта мне сказали, что время должно храниться в центральное время США. – user1485753
Вы имеете в виду в Центральном времени, не так ли? Не CST, который всегда * стандартный * время. –