Rails从时间戳转换为带时区的格式化时间

时间:2016-03-29 19:45:32

标签: ruby-on-rails datetime ruby-on-rails-4

我正在使用Rails 4构建一个应用程序。我正在从JSON读取一个Unix时间戳,并尝试根据我的时区将其显示为格式正确的时间。我能够读取显示时间戳,但它以UTC而不是EST显示。

这就是我的观点

<%= Time.at(DateTime.strptime(@weather['sys']['sunrise'].to_s,'%s')).strftime("%l:%M %P") %>

我有四个不同的时间戳,我正在进行同样的转换。

有什么我可以用来显示正确的时区吗?

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

<% time_zone = "PDT" %>
<%= Time.at(DateTime.strptime(@weather['sys']['sunrise'].to_s,'%s')).in_time_zone(time_zone).strftime("%l:%M %P") %>

有关详细信息,请参阅ActiveSupport::TimeWithZone#in_time_zone

答案 1 :(得分:0)

你可以试试这个:

<%= Time.at(DateTime.strptime(@weather['sys']['sunrise'].to_s,'%s')).in_time_zone("E‌​astern Time (US & Canada)").strftime("%l:%M %P") %>