sar*_*n07 5 java datetime date-parsing
我正在搜索一个java库,它可以将字符串解析为POJO而无需指定格式.我研究了POjava.有没有其他类似的东西的图书馆?
DateTime dateTime = DateTimeParser.parse("21/02/13");
//If unclear use the cultural information passed
DateTime dateTime = DateTimeParser.parse("01/02/13", new Locale("en-us"));
//Should also work with time zones
DateTime dateTime = DateTimeParser.parse("2011/12/13T14:15:16+01:00");
Run Code Online (Sandbox Code Playgroud)
我发现以下链接具有相同问题的Java智能日期/时间解析器,但不是非常有用的答案.Joda或JChronic都没有做我想要的.如果我错了,请纠正我.
更新:
我说Joda没有解决我的目的的原因是,Joda希望字符串以ISO8601格式或您指定的任何格式解析,如"yyyyMMdd".我将无法对此格式进行硬编码,因为我需要处理多种格式.
我有解决方案,以消除美国或欧洲日期格式的模糊性,即mm/dd/yy或dd/mm/yy.假设我可以访问日期的时区,我可以确定它是美国还是欧洲格式?有人可以告诉我这样做吗?谷歌搜索但没有发现任何东西.
问题是有些格式无法正确猜测.
一个简单的例子是01/02/2013
.这是2月1日还是1月2日?或者甚至更糟:01/02/09
?
两种格式都存在.(谢谢你,英国和美国!)
因此,任何格式的猜测者都必须依靠这些格式的运气,或故意为这些格式失败.
python模块dateutil.parser
可以作为尽力而为解析器的示例.对不起,我不知道java等价物.但你可能想看看Joda Time
http://labix.org/python-dateutil#head-b95ce2094d189a89f80f5ae52a05b4ab7b41af47
它实际上有参数dayfirst
和yearfirst
.
然后有一个perl模块:
https://metacpan.org/pod/Time::ParseDate
您可以使用该模块中的优先级列表.盲目地尝试一些模式并不是很快(优化的词法分析器会更快),但它可能对你来说已经足够好了,除非你猜测数百万条记录的格式.
归档时间: |
|
查看次数: |
11431 次 |
最近记录: |