0
我的rails 3應用程序需要與外部web服務進行交互。這個網絡服務提供有關整個美國雨天活動的信息(最終這個國家並不重要)。相關信息是開始/結束時間,格式爲ISO8601,包括時區。服務器將運行在美國的東海岸(所以EST即將成爲美國東部時間)。所有數據庫條目都將存儲爲UTC。如何捕獲iso8601 datetime的原始時區?
我需要能夠存儲事件發生的時區(TZ),因此我向用戶提供選項以查看他們自己的TZ或原始TZ中的事件。一旦他們到達該位置,他們將不會在乎該事件是否基於他們的HOME TZ而開始,但是事件將發生在TZ。
輸入數據:
start = "2011-04-08T10:00:00-06:00"
end = "2011-04-08T16:00:00-06:00"
#fyi
Time.zone => GMT-05:00 Eastern Time US Canada
# Server time zone, original time zone lost !!!!
Time.parse(start) => 2011-04-08 12:00:00 -0400
# UTC, time zone lost
Time.zone.parse("2011-04-08T10:00:00-06:00") => Fri, 08 Apr 2011 16:00:00 UTC 00:00
我沒有看到任何方式(減去人工字符串處理),以獲得原始,-06:00 TZ(MST)。我真的希望有一個RoR的方式獲得這個信息......似乎應該有一種方式!
完美!使用區域和偏移量方法,我可以得到我所需要的。不知道爲什麼我沒有找到這個...日期/時間+ TZ在ruby和rails中看起來像一團糟。 – basszero 2011-03-10 14:21:04
因爲這是一個複雜的問題,所以我用過的每種語言都很混亂。 – tadman 2011-03-10 18:35:07
責怪政治家,而不是圖書館。 – hoffmanc 2012-10-04 14:32:39