我正在使用Rails 3.1。这是我的配置
config.time_zone = "Eastern Time (US & Canada)"
现在用户将于2011年11月30日晚上7点进入。我如何解析这个文本,以便解析后我得到EST中的结果?
答案 0 :(得分:2)
您可以致电time = ActiveSupport::TimeZone.new('EST').parse('Nov 30, 2011 at 7:00 PM')
来完成此操作。您还可以通过调用Time.zone.parse
将时间字符串解析为特定于用户或默认时区。您可以将结果时间转换为任何时区而不是Time.zone.now.in_time_zone('Asia/Yekaterinburg')
此外,在将时间存储到数据库之前,不需要对时区进行任何手动转换,因为Rails会自动进行。
答案 1 :(得分:1)
您应该以UTC格式存储所有值,并以用户的本地时间呈现它们。 “东部时间”充其量只是一个松散的概念,并且随着政治家决定延长或缩短夏令时,会定期更改。
通常,您可以使用ActiveSupport::TimeZone方法local_to_utc
和utc_to_local
转换方法执行此操作。