2014-02-13 25 views
0

我想在JAVA中解析從API接收的日期/時間。解析與完整的國家名稱的時間戳

我收到的時間戳看起來是這樣的:「週四02月13日12點11分09秒IST(以色列)聽英語」

我使用Java的SimpleDateFormat的,但我沒有看到任何地方怎麼做到的國名,與括號,到達這個字符串,我應該如何解析它。

這是我不知道的一些標準格式嗎?

UPDATE:

我從一個Android應用程序接收這個時間戳。有趣的是,完全相同的應用程序,運行在不同的設備上給我:「Tue Feb 04 17:36:31 GMT + 02:00 2014」

GMT + 2也是以色列,同一時區,不同的格式...爲什麼?

回答

0

我不知道android在哪裏管理時區名稱資源。無論如何,顯然這個設備上的資源名稱已被更改(由Google?),其動機是爲了避免重複。縮寫IST不是唯一的,也可以代替映射到Asia/Colcata的「印度標準時間」(而以色列時區是亞洲/耶路撒冷)。

如果你不能解析「IST(以色列)」,那麼我承擔以下事情:如果你直接在Android設備上解析它SimpleDateFormat那麼它應該可能工作。但是,如果您遠程獲取該字符串,則只能應用字符串預處理(過濾出該國家),因爲其他設備不一定會管理和共享相同的時區名稱資源。您可以通過調用DateFormatSymbols.getZoneStrings()直接在Android上檢查存儲的資源。

結論:您應該將這些字符串視爲設備相關的字符串。對於數據交換,這樣的格式設計不好。而不是使用這種專有格式,您應該嘗試使用格式爲「yyyy-MM-dd'T'HH:mm:ssXX」的ISO字符串。您使用的API是否提供其他格式?