适用于Java的智能日期/时间解析器

是否有一些适用于Java的智能日期/时间解析器库? 智能我的意思是,我不需要指定日期/时间格式。 API应该类似于:

Calendar cal = DateTimeParser.parse("01/06/10 14:55"); cal = DateTimeParser.parse("1 Jan 2009"); // assumes 00:00 time cal = DateTimeParser.parse("1.2.2010"); cal = DateTimeParser.parse("kygyutrtf"); // throws exception 

更新

 // I'm telling the parser: "If unsure, assume US date format" cal = DateTimeParser.parse("01/02/03", new Locale("en-us")); 

JodaTime非常适合操作日期对象(例如date.plusDays(10))

…但是JChronic是你想要的自然语言日期解析,例如

 Chronic.parse("now") Chronic.parse("tomorrow 15:00") Chronic.parse("14/2/2001") Chronic.parse("yesterday") Chronic.parse("20 Jan 2010") 

你的问题与这个问题类似。

不,那里没有。 它应该在“01/02/03”上返回什么? 2003年1月1日,2001年2月3日,或2001年3月2日?

好奇你想要称之为聪明 ,只要考虑以下几点:

  • 你的1.2.2010和我一样吗?
  • 如果代码在具有不同语言环境的不同时区上运行会发生什么?
  • 它应该遵循一些完善的标准还是完全发明自己的标准?

你的问题的答案是否定的

这实际上不可能,或者至少足够可靠。

例如,字符串10/10/10代表什么日期?