У меня есть приложение, в котором я хочу разрешить пользователю устанавливать часовые пояса. Когда пользователь создает запись напоминания, запись будет сохранена в дБ в формате UTC. Но когда он открывает запись календаря в приложении, он должен увидеть запись в выбранном часовом поясе.
Я использую Chronic, но здесь это неважно.
В моем ApplicationController.rb
есть следующая строка:
before_filter :set_user_time_zone
...
def set_user_time_zone
Time.zone = current_user.timezone if user_signed_in?
end
После этого записи все еще сохраняются в UTC, но с разницей во времени. Например, я установил часовой пояс - «Дели», который +530 от UTC. Когда я хочу сохранить запись календаря для «16 января - 12:15» - база данных заполняется «2011-01-15 18:45:19 UTC» - так что это 5:30 часов до фактического времени сохранить.
В пользовательском интерфейсе я также вижу эту запись вместо времени, отображаемого в часовом поясе текущего пользователя.
Я хочу знать, каким должен быть правильный способ обработки такого типа часовых поясов в рельсах.