为ActiveSupport :: TimeWithZone指定UTC偏移而不是时区

时间:2017-10-19 16:52:12

标签: ruby-on-rails ruby activesupport

使用ActiveSupport :: TimeWithZone我能够执行以下操作并在正确的时区内获取TimeWithZone对象。

Time.current.in_time_zone('Alaska')
:> Thu, 19 Oct 2017 08:45:08 AKDT -08:00

是否存在与in_time_zone等效的方法,我可以在几秒钟内将UTC偏移量传递给它并返回具有指定偏移量的TimeWithZone对象?

offset = -25200 # -25200 seconds == -08:00
Time.current.in_utc_offset(offset)
:> Thu, 19 Oct 2017 08:45:08 -08:00

提前致谢!

使用Rails 5.1.2& Ruby 2.4.1

1 个答案:

答案 0 :(得分:1)

是的,它是在vanilla中:#getlocal(sec)。它不会给你一个ActiveSupport::TimeWithZone但它会给你Time你可以格式化或做任何你想做的事情,包括使用ActiveSupport扩展。

2.4.1 :016 > Time.now.getlocal(3600)
=> 2017-10-19 22:56:45 +0100 
2.4.1 :017 > Time.now.getlocal(-3600)
=> 2017-10-19 20:56:48 -0100 

PS:-25200是7小时秒:) -8:00将是28800