我在Debian上使用Rails 3.2和ruby 1.9.3.我有一个应用程序,通过HTML表单以字符串的形式收集日期、时间和时区.比如:
start_date: "04-15-2010",
start_time: "10:00:00",
timezone: "Central Time (US & Canada)"
我想做的是将这3个元素解析为一个日期,并以UTC的形式保存到我的数据库中,在本例中,一旦进入UTC时区,它将在开始时间的基础上增加7个小时.
我try 过这样的方法来解析日期:
ActiveSupport::TimeZone[timezone].at DateTime.strptime("{ 2012-04-09 20:00:00 }", "{ %Y-%m-%d %H:%M:%S }").to_i
但是,我无法使用%Z将时区合并到生成的时间中.它要么不解析,要么将时间解释为UTC而不是中心时间.所以我的问题是,如何在不改变存储的实际日期/时间值的情况下,将日期字符串强制转换为特定的时区.我希望能够将字符串解析为包含正确时区的日期/时间对象,以便将来的时区转换是准确的.我找遍了,找不到办法.这很奇怪,因为这似乎是从HTML表单输入日期的常见做法.谢谢你的帮助.