2011-03-30 39 views

回答

23
require 'time' 

p Time.zone_offset('EST') #=> -18000 #(-5*60*60) 
+10

Time.zone.utc_offset保存了我的日子=) – 2011-03-30 17:36:26

+1

不要忘記,爲了這個工作正常,你必須設置'config.time_zone ='Berlin''和'config.active_record.default_timezone ='Berlin''在application.rb(在我的情況下,沒有,它沒有反映正確的夏令時調整) – weltschmerz 2013-07-16 13:21:04

+1

請注意:https://github.com/rails/rails/issues/7297 – Valentin 2014-07-24 14:32:13

5

如果你有一個ActiveSupport::TimeWithZone對象,你可以打電話time_zone.utc_offset就可以了。所以,例如,Time.zone.now.time_zone.utc_offset

編輯:你也可以在普通的Time對象上使用gmt_offset實例方法。

9
my_date_time = DateTime.new(2011, 3, 29, 20) 
#=> Tue, 29 Mar 2011 20:00:00 +0000 

#will return the same time but with another offset 
my_date_time.change(:offset => "+0100") 
#=> Tue, 29 Mar 2011 20:00:00 +0100 

#will return time for other offset 
my_date_time.in_time_zone(-1) 
#=> Tue, 29 Mar 2011 19:00:00 -0100 
+0

這是我想要的第一個地方,一個-N抵消! – 2013-10-03 03:42:13

2

剛剛在這裏完成循環,現在我使用:

@course.start.utc_offset/60/60爲了得到所需的小時#。 jquery倒計時在他們的timezone參數中只需要-5或+3。

歡迎您的光臨。

15

如果你需要採取日光節約時間考慮,你可以使用這樣的事情:

Time.now.in_time_zone('America/New_York').utc_offset 
+0

謝謝。這給了我'Time.zone.utc_offset'沒有的正確的偏移量。 – 2015-08-27 12:55:51

+0

不適用於Ruby 2.1.8 ... – 2016-10-17 15:15:26

+0

@GregDubicki它在Rails的ActiveSupport :: TimeWithZone中 – Dorian 2016-12-02 18:24:58

3

我用Time.zone.utc_offset/1.hour得到的小時偏移量(例如:-8舊金山)

相關問題