2016-11-23 101 views
0

我想創建日曆的一個實例,其中字符串日期來自服務器。現在我不知道服務器發送的格式。從字符串日期創建日曆,不知道格式

它可以改變爲不同的countries。我知道我可以要求他們爲dateFormat添加另一個密鑰並從中創建Calendar。但仍然想知道是否有任何方法來創建日曆實例,而不知道當前的字符串日期格式。

我已經通過thisthis。但沒有一個符合我的要求

+0

您必須知道某些內容。您可以使用特定於語言環境的日期解析器;我建議堅持使用JDK 8中的新日期時間包。 – duffymo

+0

您可以請求服務器人員在[時間戳](https://docs.oracle.com/javase/7/docs/api/java)中提供日期/時間/sql/Timestamp.html)格式,所以你可以格式化在你身邊 – SaravInfern

+0

http://stackoverflow.com/questions/454315/how-do-you-format-date-and-time-in-android 這可能幫你 –

回答

3

這是不可能的。

如果服務器發送值「1/2/2017」,則無法知道這是指1月2日還是2月1日。

如果服務器發送值「מָחָר」,理論上你可能會意識到這可能是「明天」一詞的希伯來語翻譯(至少根據谷歌翻譯),但即使如此,它還不清楚無論這是相對於今天還是其他日期。

如果服務器發送值「我想創建一個帶有來自服務器的字符串日期的日曆實例」,那麼您無法根據該日期創建日期,至少使用任何對人有意義的算法。

依此類推。

服務器應該以任意格式返回日期的唯一原因是如果日期只能由首先提供該值的用戶讀取並且以純文本形式逐字呈現而不解析。否則,服務器應該以標準格式提供日期,使用該UI的用戶界面消耗該日期,該日期負責以用戶友好(並且理想情況下爲區域意識)的方式對其進行格式化。

歡迎您嘗試暴力破解問題,迭代一系列日期格式並查看看起來有效的日期是否有結果。由於至少有兩種格式會返回一個看似有效的日期,所以這在1/2/2017情況下失敗了,但也許您對服務器足夠了解以縮小可能的格式以減少這種衝突的機率。

0

Joda Date & Time API有一個日期解析器,它可以解析許多格式的日期字符串。請注意,某些日期時間字符串可能不明確:10-09-2003可能表示10月9日或9月10日。