我正在使用Rails 3.1。這是我的配置如何解析日期,使其在美國東部時間
config.time_zone = "Eastern Time (US & Canada)"
現在用戶輸入2011年11月30日下午7:00。我如何解析這段文字,以便在解析後得到EST的結果?
我正在使用Rails 3.1。這是我的配置如何解析日期,使其在美國東部時間
config.time_zone = "Eastern Time (US & Canada)"
現在用戶輸入2011年11月30日下午7:00。我如何解析這段文字,以便在解析後得到EST的結果?
您可以致電time = ActiveSupport::TimeZone.new('EST').parse('Nov 30, 2011 at 7:00 PM')
。您也可以通過調用Time.zone.parse
來解析時間字符串爲用戶特定時區或默認時區。您可以將結果時間轉換爲任意時區,即Time.zone.now.in_time_zone('Asia/Yekaterinburg')
此外,在將時間存儲到數據庫之前,無需手動轉換時區,因爲Rails會自動執行此操作。
您應該將所有值存儲在UTC中並將其呈現在用戶的當地時間。 「東部時間」充其量只是一個鬆散的概念,並且隨着政治家決定延長或縮短夏令時而相當經常地發生變化。
通常,您可以使用ActiveSupport::TimeZone方法local_to_utc
和utc_to_local
轉換方法執行此操作。