您如何在 Ruby 中(不使用 Rails)将以下时间从 UTC 转换为 EST?

Ten*_*ack 5 ruby time ruby-on-rails

我试图在纯 Ruby 中将 UTC 时间“2018-04-02T14:30:00Z”转换为 EST。我注意到以下差异。如果我使用 Rails 解析 UTC 时间,然后添加 EST zone_offset,我得到的时间与使用“in_time_zone”助手的时间不同。9:30 与 10:30。

2.2.4 :001 > t = Time.parse "2018-04-02T14:30:00Z"
 => 2018-04-02 14:30:00 UTC 
2.2.4 :002 > t + Time.zone_offset("EST")
 => 2018-04-02 09:30:00 UTC 
2.2.4 :003 > t.in_time_zone('Eastern Time (US & Canada)')
 => Mon, 02 Apr 2018 10:30:00 EDT -04:00 
Run Code Online (Sandbox Code Playgroud)

小智 2

你可以尝试这个localtime方法,比如Time.parse("2018-04-02T14:30:00Z").localtime("-05:00").strftime("%m/%d/%Y %I:%M %p")漂亮的打印来获取时间对象删除strftime