gpt4 book ai didi

ruby-on-rails - 你如何在 Ruby(没有 Rails)中将以下时间从 UTC 转换为 EST?

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:24 25 4
gpt4 key购买 nike

我试图在纯 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

最佳答案

Rails 可以很好地处理时区,如果不使用它,您将很难复制 ActiveSupport::TimeWithZone#in_time_zone 的结果。

例如,正如您所指出的:

>> t = Time.parse "2018-04-02T14:30:00Z"
>> t.in_time_zone('Eastern Time (US & Canada)')
Mon, 02 Apr 2018 10:30:00 EDT -04:00

但考虑到您同样可以这样做:

>> t = Time.parse "2018-01-02T14:30:00Z"
>> t.in_time_zone('Eastern Time (US & Canada)')
Tue, 02 Jan 2018 09:30:00 EST -05:00

换句话说,ActiveSupport 不仅可以处理您的时区,还可以处理您的标准/夏令时挑战,所有这些都是免费的。甚至 moment.js 都不会这样做(或者如果会,我还没弄清楚怎么做)。

您是否考虑过使用 require 'active_support',它可以在不使用所有 Rails 的情况下为您提供此功能?

关于ruby-on-rails - 你如何在 Ruby(没有 Rails)中将以下时间从 UTC 转换为 EST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com