Вопрос по timezone, ruby-on-rails, date – Rails: как разобрать строку даты и времени в определенный часовой пояс

35

Я использую Rails 3.2 и ruby 1.9.3 в Debian. У меня есть приложение, которое собирает дату, время и часовой пояс в виде строк через форму HTML. Что-то вроде этого

<code>start_date: "04-15-2010",
start_time: "10:00:00",
timezone: "Central Time (US & Canada)"
</code>

То, что я хотел бы сделать, это разобрать эти 3 элемента в одну дату, которая сохраняется в моей базе данных как UTC, что в этом случае добавило бы 7 часов к времени начала, как только оно будет в часовом поясе UTC. Таким образом, сохраненное время будет 17:00, как только оно будет в БД в формате UTC вместо полученного центрального времени.

Я пытался что-то вроде этого, чтобы разобрать дату:

<code>ActiveSupport::TimeZone[timezone].at DateTime.strptime("{ 2012-04-09 20:00:00 }", "{ %Y-%m-%d %H:%M:%S }").to_i
</code>

Однако я не могу включить часовой пояс в полученное время с% Z. Он либо не анализируется, либо время интерпретируется как UTC, а не центральное время. Поэтому мой вопрос заключается в том, как привести строку даты в определенный часовой пояс, не меняя значения фактической сохраненной даты / времени. Я хотел бы иметь возможность проанализировать строку в объекте даты / времени, который включает в себя правильный часовой поясв то врем так, чтобы будущие преобразования часовых поясов были точными. Я просмотрел все и не могу найти способ сделать это. Это странно, так как это похоже на обычные даты, введенные из форм HTML. Спасибо за любую помощь

Ваш Ответ

0   ответов

Похожие вопросы