2011-10-12 100 views
0

我有日期格式是這樣,我想分析 -日期解析器爲所有格式

2011 09月02日15:57

週五,2011年9月2日上午09時51

Mittwoch 10. 2011年8月16時31分

woensdag 10奧古斯2011 14:09

星期三7月27日20時23分18秒2011 -0000(UTC)

我們可以有任何解析器可以做到這一點也考慮到語言的差異?

問候 NEHA

+0

這些值來自哪裏?從最終用戶提供的輸入?爲什麼你不能只問終端用戶一個固定的輸入格式,並根據最終用戶自己的語言環境來驗證它? – BalusC

+0

這些是解析的一些文件的一部分,我們需要得到日期 – Neeha

+0

它是什麼類型的文件?它有一個固定的(官方指定的)格式嗎?如果是這樣,那麼只需閱讀指南的規格。如果沒有,你需要先處理。否則,最好的辦法是自己收集所有可能的格式和區域設置,並嘗試在循環中解析,直到沒有拋出「ParseException」爲止。 – BalusC

回答

4

定義一個通用的日期解析器是不可能的,因爲日期格式歧義。例如:

12/11/2011 

...暗示2011年11月12日使用英國約會,但2011年12月11日使用美國約定。

你可以採取一種方法,你可以定義一個ListSimpleDateFormat類,每個類都指定一個日期模式並嘗試按照該順序解析日期。不過,我個人不會推薦它,因爲它會導致任何最終用戶(假設有任何)和/或難以跟蹤的數據相關錯誤的直覺行爲。最好定義明確的日期格式或依賴系統區域設置(取決於您的問題域)。