在rails控制台中:
> ActiveSupport::TimeZone['Samoa'].utc_offset
=> -39600
> ActiveSupport::TimeZone['Samoa'].now.utc_offset
=> 50400我希望看到一个基于DST的差异,也许,一个小时。为什么这里有这么大的差别?
更新:Samoa是唯一具有这种行为的时区。很容易找到:
ActiveSupport::TimeZone
.all
.select{|tz| (tz.now.utc_offset - tz.utc_offset).abs/(3600) > 1}发布于 2015-12-17 04:03:03
萨摩亚时区于2011年12月29日越过国际日期线。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
50400https://stackoverflow.com/questions/34326222
复制相似问题