Rails:如何将日期时间字符串解析为特定时区

我在Debian上使用Rails 3.2和ruby 1.9.3。我有一个应用程序,通过HTML表单以字符串的形式收集日期、时间和时区。大概是这样的:

开始日期:2010年4月15日,
开始时间:“10:00:00”,
时区:“中央时间(美国和加拿大)”

我想做的是将这3个元素解析为一个日期,该日期以UTC的形式保存到我的数据库中,在本例中,一旦进入UTC时区,开始时间将增加7小时。
因此,一旦数据库中的存储时间为UTC,则存储时间将为17:00,而不是接收到的中心时间

我尝试过这样的方法来解析日期:

ActiveSupport::TimeZone[TimeZone]。在DateTime.strtime({2012-04-09 20:00:00},“{%Y-%m-%d%H:%m:%S}”)。到

但是,我无法使用%Z将时区合并到生成的时间中。它要么不解析,要么将时间解释为UTC而不是中心时间。所以我的问题是,如何在不更改实际存储的日期/时间值的情况下将日期字符串强制转换为特定时区。我希望能够将字符串解析为一个日期/时间对象,该对象包含正确的时区,以便将来的时区转换是准确的。我已经找遍了,找不到一个方法来做这件事。这很奇怪,因为从HTML表单输入日期时,这似乎很常见。谢谢你的帮助

试试这个:

zone=“中央时间(美国和加拿大)”
ActiveSupport::时区[zone]。解析(“2013-04-03 17:47:00”)

发表评论