Java智能日期解析器

问题描述

| Java中是否有一个智能的日期解析器,可以解析各种日期格式而无需事先知道格式是什么? 例如,我可以具有以下格式: 1998年3月21日, 2004年3月,2001年, 3/4/97 1998年12月12日 是否有一个简单的解析调用(可以使用第三方库),可以用来处理调用?     

解决方法

考虑到排列的数量几乎不受限制,我不知道是否有一个好的即用型选择。但是,如果必须这样做,我将从事实上的Java日期包Joda开始,然后使用允许的数据格式序列进行线性查找,并接受第一个成功解析的格式。     ,看到: Java是否有好的日期解析器? 对于一些建议。 (Apache Commons和Joda Time)     ,您是否尝试过
SimpleDateFormat.parse(String,ParsePosition)
的标准Java解决方案? 根据文档:   解析字符串中的文本以产生一个   日期。该方法尝试解析   从给定索引处开始的文本   位置如果解析成功,则   pos的索引已更新为索引   最后使用的字符之后(解析   不一定全部使用   直到末尾的字符   字符串),并且解析日期为   回到。可以使用更新的pos   指出起点   下次调用此方法。如果有错误   发生,则pos的索引不是   更改后,设置了pos的错误索引   到字符的索引,其中   发生错误,并且为null   回到。