2015-10-13 88 views
6

我一直在爲我們的國際應用程序解析日期時間字符串。我遇到了一個解釋問題,我似乎無法找到明確的答案。 應該將沒有時區組件的ISO 8601日期時間字符串視爲本地時間嗎?DateTime ISO 8601沒有時區組件

wikipedia(我不希望我的基礎業務決策關閉的):

如果沒有UTC相關信息與時間表示給定的, 的時間被假定爲本地時間。

但是,我無法通過ISO或任何其他普遍接受的事實來找到支持文檔。我發現的一切都會談到如何處理當地時間的偏移量(例如+/- 0500等)。假設在這些情況下的本地時間可以幫助我,因爲我的用戶可以提交所有地區的同一日期,而無需計算每個地區的具體偏差。

例如:

2012-01-01T00:00:00 # Convert to local 
2012-01-01T00:00:00Z # Zulu/UTC...don't convert 

有沒有時區少ISO 8601個字符串建立解釋?

回答

6

ISO 8601的4.2.2節給出了沒有TZ標誌的例子,他們說當地時間。 4.2.4表示UTC時間使用'Z'標誌。當然,它總是會提出一個問題:「當地時間在哪裏?」...

+0

太棒了,這就是我一直在尋找的東西。 ISO文檔不是「公開」免費提供的,這是我第一次錯過它的原因。無論如何,上帝保佑上傳的人:) 在用戶輸入中有一個固有的屬性來指定區域,所以「where」方面已經被處理。 – Devin

0

沒有時區指示符,日期時間字符串將被解釋爲本地時間 - 但作爲本地時間到服務器。

如果你的用戶在不同的時區,他們提交的日期沒有TZ信息將被你的本地TZ抵消錯誤地解釋。