问题描述
|
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
回到。