2014-11-14 62 views
-2

你好傢伙我最近被分配任務從excel表中收集一些數據,並把它們放在一個數據庫中,這裏的主要要求是數據必須強大這裏的困難部分是許多字段都是日期,他們沒有標準格式,所以我可以用正常的日期解析器解析它們。 例如有日期看起來像這樣"4-Mar 02:35"這樣"5-Mar"這樣在java中解析日期,不調整爲格式

"2.2.13 6:30 
" 

這樣"23/2/13 17:45"像這樣"2.2.13 6.30"有什麼辦法來分析他們的方式,添加不存在任何的附加信息到結束日期?

+1

什麼是你試圖解析*爲*:

DateTimeFormatter dateTimeFormatter= DateTimeFormat.forPattern("dd/MM/yy hh:mm") ; DateTimeFormatter dateTimeFormatterWithTimeZone= DateTimeFormat.forPattern("d.M.YY hh:mm"); DateTimeFormatter optionalTimeZoneFormatter= new DateTimeFormatterBuilder() .append(null, //because no printing is required new DateTimeParser[]{dateTimeFormatter.getParser(), dateTimeFormatterWithTimeZone.getParser()}).toFormatter(); 

它在我這篇文章更詳細解釋? 'java.util.Date'(etc)不知道格式......如果你還需要保留原始值,只需將它與分析值分開保存即可。 – 2014-11-14 14:41:17

+1

你可以看看這些鏈接: 1- http://stackoverflow.com/questions/4216191/intelligent-date-time-parser-for-java 2 - http://stackoverflow.com/questions/15010210 /自動日期時間分析器無指定格式 – zack 2014-11-14 14:41:53

回答

1

我會使用JodaTime(http://www.joda.org/joda-time/),它是flexibel解析器。

有了這個,你可以爲DateTimeparser定義幾種模式。

例如:http://edgblog.wordpress.com/2014/02/17/jodatime-goodies-flexible-parsing/

問候

+0

謝謝你,但你能給我一個例子什麼是解析這種日期的方式「4三月02:35」 – asdfsarandom 2014-11-14 15:25:24

+1

你必須定義它模式。 [可以在這裏找到constan的概述](http://www.joda.org/joda-time/key_format.html)。在我上面的答案中的兩個例子已經是你給出日期的例子。第一個格式化程序將解析'「23/2/13 17:45」'第二個''2.2.13 6.30「'爲了解析它的名字給出的一個月,你必須使用'MMM',據我所知。也看看博客的鏈接。 – questionare 2014-11-14 15:43:40