gpt4 book ai didi

ruby-on-rails - 为什么 zone.utc_offset 和 zone.now.utc_offset 之间存在差异?

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

在 Rails 控制台中:

> ActiveSupport::TimeZone['Samoa'].utc_offset
=> -39600
> ActiveSupport::TimeZone['Samoa'].now.utc_offset
=> 50400

我希望看到基于 DST 的差异,也许是一个小时。为什么这里有巨大的差异?


更新: 萨摩亚 是唯一具有这种行为的时区。很容易找到:

ActiveSupport::TimeZone
.all
.select{|tz| (tz.now.utc_offset - tz.utc_offset).abs/(3600) > 1}

最佳答案

萨摩亚时区于 2011 年 12 月 29 日跨过国际日期变更线。 https://en.wikipedia.org/wiki/Samoa_Time_Zone

因此 zone.utc_offset 值适用于 2011 年 12 月 29 日之前的值,并且在此之后的任何时间都会适当调整 utc_offset。

> ActiveSupport::TimeZone['Samoa'].parse('2011-01-01').utc_offset
-36000
> ActiveSupport::TimeZone['Samoa'].parse('2015-01-01').utc_offset
50400

关于ruby-on-rails - 为什么 zone.utc_offset 和 zone.now.utc_offset 之间存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326222/

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