2014-01-06 20 views

回答

1

要ANWER你的問題:

2.0.0p353 :001 > now = DateTime.now.in_time_zone('Mountain Time (US & Canada)') 
=> Mon, 06 Jan 2014 06:11:53 MST -07:00 
2.0.0p353 :002 > now.in_time_zone('Eastern Time (US & Canada)') 
=> Mon, 06 Jan 2014 08:11:53 EST -05:00 

請注意DST是被自動處理:

2.0.0p353 :009 > now = (DateTime.now+6.months).in_time_zone('Mountain Time (US & Canada)') 
=> Sun, 06 Jul 2014 07:14:30 MDT -06:00 
2.0.0p353 :010 > now.in_time_zone('Eastern Time (US & Canada)') => Sun, 06 Jul 2014 09:14:30 EDT -04:00 

當然看resou rce通過@Micheal Moulsdale鏈接,你會發現那裏有所有TimeZone的名字。

+0

我的目標是從'Time'對象 – user2965465

+0

相同方法適用於'Time'提取'EST'(或任何會theze)。要檢查區域,只需在'Time'對象上調用'zone'。 – zrl3dx

+0

@ user2965465 - 你應該考慮改變你的問題的主題,並增加更多的細節問題。 (這是考慮你對第一個答案的回答。) – Tass

0

將日期轉換爲正確的區域後,嘗試使用date.zone()獲取短區域名稱。

zone = ActiveSupport::TimeZone.new(current_user.time_zone) 
date.in_time_zone zone 
date.zone