2010-11-09 30 views
0

我想解析許多字符串日期到日期(s),一些與時間部分,其他沒有,與「dd/MM/yyyy HH:mm」格式。 (這裏格式總是「dd/MM/yyyy HH:mm」)。Java:不能解析「23/10/1973」與「dd/MM/yyyy HH:mm」格式

但是這會導致異常,即使setLenient被強制爲true。你知道我可以怎樣轉換成日期很多字符串格式化爲「dd/MM/yyyy HH:mm:ss」,但是有些人沒有時間,有些人沒有經過時間,還有一些人沒有時間?

+3

如何根據日期字符串的長度使用不同的格式字符串? – 2010-11-09 15:47:43

回答

1

如果你知道某些字符串有時間而有些字符沒有,並且沒有其他情況,我只需檢查字符串的長度。但是,如果您有很多不同的格式可用,我會按照某種順序嘗試每個格式,直到您獲得有效的日期。

+0

哇......好吧......但我認爲「寬鬆」允許忘記(或不)時間,當你通過一個較短的字符串比預期。這似乎並非如此。那麼......「寬大」的目的是什麼? – Oliver 2010-11-11 21:02:56

+1

@ user499417:lenient(默認情況下處於開啓狀態)將2010/13/01這樣的日期解析爲2011/01/01,因爲它對一年中的月份和月份中的天數寬鬆。 'DateFormt'的'lenient'屬性直接對應'Calendar'的寬容屬性。可悲的是,Java的Date,Calendar和DateFormat類留下了很多不足,這就是爲什麼有些人使用Joda。 – 2010-11-12 14:30:39

0

我總是有兩個解析字符串,我解析兩次;一次使用日期/時間,一次使用日期。

+0

哇...工作,但真的沒有樂趣... – Oliver 2010-12-29 12:01:29