Rails: Como analisar a cadeia de data e hora em um fuso horário específico

Estou usando o Rails 3.2 e o ruby ​​1.9.3 no Debian. Eu tenho um aplicativo que coleta uma data, hora e fuso horário na forma de strings por meio de um formulário HTML. Algo assim:

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

O que eu gostaria de fazer é analisar esses 3 elementos em uma única data salva em meu banco de dados como UTC, que nesse caso adicionaria 7 horas à hora de início, uma vez que está no fuso horário UTC. Assim, o horário armazenado seria 17:00, uma vez no banco de dados como UTC, em vez do horário central recebido.

Eu tentei algo assim para analisar a data:

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

No entanto, não consigo incorporar o fuso horário ao tempo resultante com% Z. Ele não é analisado ou a hora é interpretada como UTC e não como hora central. Então, minha pergunta é: como coagir uma string de data em um determinado fuso horário sem alterar o valor da data / hora real armazenada. Gostaria de poder analisar a string em um objeto de data / hora que inclua o fuso horário corretonaquela hora para que as futuras conversões de fuso horário sejam precisas. Eu olhei tudo e não consigo encontrar uma maneira de fazer isso. É estranho, já que isso parece algo comum com datas inseridas de formulários HTML. Obrigado por qualquer ajuda.

questionAnswers(7)

yourAnswerToTheQuestion