解析Java中的任何日期

解析Java中的任何日期

我知道这个问题被问了很多次,很明显你不能解析任何任意的日期。但是,我发现python-dateutil库能够解析我抛出的每一个日期,而在计算日期格式字符串时却需要绝对的零努力。Joda Time一直被认为是一个优秀的Java日期解析器,但它仍然要求您在选择格式(或创建自己的格式)之前决定日期的格式。您不能只调用DateFormatter.Analysis(Mydate)并神奇地获得一个Date对象。

例如,用python-dateutil正确解析“Wed Mar04:09:06 GMT-06:00 2009”日期:

import dateutil.parser
print dateutil.parser.parse('Wed Mar 04 05:09:06 GMT-06:00 2009')

但以下Joda时间电话不起作用:

    String date = "Wed Mar 04 05:09:06 GMT-06:00 2009";
    DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
    DateTime dt = fmt.parseDateTime(date);
    System.out.println(date);

而创建您自己的DateTimeForMatter则不符合这个目的,因为这似乎与使用带有正确格式字符串的SimpleDateFor事宜相同。

是否有类似的方法来解析Java中的日期,比如python-dateutil?我不关心错误,我只想让它更完美。


炎炎设计
浏览 423回答 3
3回答

冉冉说

有一个很好的图书馆纳蒂我认为这符合你的目的:Natty是一个用Java编写的自然语言日期解析器。给定日期表达式,natty将应用标准的语言识别和翻译技术来生成具有可选解析和语法信息的对应日期列表。你也可以在网上试试!

慕森王

我看到的是一个包含几种典型日期格式的Dateutil类。因此,当调用DateUtil.Analysis(Date)时,它尝试在内部解析每个日期格式的日期,并且只有在没有任何内部格式能够解析日期的情况下才抛出异常。这基本上是一种蛮力的方法来解决你的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java