2012-06-01 67 views
0

我有一個工具,其中一切都被保存爲UTC,而GUI端只反映EST(特別是東部時間的EST,與UTC靜態時差--5小時,並且不遵循夏令時)。在軌道上將EST轉換爲UTC?

因此,if一個用戶選擇了一段時間,他們選擇了一個EST時間,我試圖弄清楚什麼是EST到UTC轉換的最佳方式。它看起來像「in_time_zone」,只有1個東部區域,我想假設副手「復活節時間(美國&加拿大)」真的是EDT(不EST):

ActiveSupport::TimeZone.us_zones.map(&:name) 
    => ["Hawaii", "Alaska", "Pacific Time (US & Canada)", "Arizona", 
"Mountain Time (US & Canada)", "Central Time (US & Canada)", 
"Eastern Time (US & Canada)", "Indiana (East)"] 

會簡單地做的最好的事情是5小時(+ 5.hours)添加到用戶選擇的時間EST存儲爲UTC?

謝謝!

的Rails 2.3.5

回答

1

在配置/ application.rb中

config.time_zone = 'Eastern Time (US & Canada)' 

雖然存儲,使用此:

in_time = (params[:in] + ' Eastern Time (US & Canada)' 
     ).to_datetime.in_time_zone('Eastern Time (US & Canada)').to_s 
if in_time.match('-0400') 
    clock.in = (params[:in] + ' -4:00').to_datetime.in_time_zone('UTC') if params[:in] != '' 
elsif in_time.match('-0500') 
    clock.in = (params[:in] + ' -5:00').to_datetime.in_time_zone('UTC') if params[:in] != '' 
else 
    <HANDLE ERROR> "ERROR: CANNOT FIGURE OUT TIMEZONE IN #{params[:in]}." 
end 
+0

有沒有幫助?如果您找到了更好的解決方案,請在此分享。你能接受答案嗎? – Anil

相關問題