我知道这个问题有很多问题,显然你无法解析任何日期.但是,我发现python-dateutil库能够解析我抛出的每个日期,同时在确定日期格式字符串时完全没有必要.Joda时间总是作为一个伟大的Java日期解析器出售,但它仍然需要您在选择Format(或创建自己的)之前决定日期的格式.你不能只调用DateFormatter.parse(mydate)并神奇地获得一个Date对象.
例如,使用python-dateutil正确解析日期"Wed Mar 04 05:09:06 GMT-06:00 2009":
import dateutil.parser
print dateutil.parser.parse('Wed Mar 04 05:09:06 GMT-06:00 2009')
Run Code Online (Sandbox Code Playgroud)
但以下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);
Run Code Online (Sandbox Code Playgroud)
并且创建自己的DateTimeFormatter会破坏目的,因为这似乎与使用具有正确格式字符串的SimpleDateFormatter相同.
是否有类似的方法来解析Java中的日期,比如python-dateutil?我不关心错误,我只是希望它大多完美.
我正在尝试解析文档中出现的一些日期.看起来用户已经以类似但不精确的格式输入这些日期.
以下是格式:
9/09
9/2009
09/2009
9/1/2009
9-1-2009
Run Code Online (Sandbox Code Playgroud)
尝试解析所有这些问题的最佳方法是什么?这些似乎是最常见的,但我想是什么让我感到高兴的是,如果我有一个"M/yyyy"模式,那么总是会在"MM/yyyy"之前捕获我是否必须设置我的try/catch块嵌套在限制最少的限制性方式?似乎肯定会采取大量代码重复来实现这一目标.