我知道这个问题经常被问到,显然你不能解析任何随意的日期。但是,我发现 python-dateutil 库能够解析我抛给它的每个日期,而在计算日期格式字符串方面完全不需要任何努力。Joda 时间总是作为一个优秀的 Java 日期解析器出售,但它仍然需要您在选择格式(或创建自己的格式)之前决定日期的格式。您不能仅仅调用 DateFormatter.parse (mydate)然后神奇地得到一个 Date 对象。
例如,使用 python-dateutil 正确解析日期“ Wed Mar 0405:09:06 GMT-06:002009”:
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 违背了这个目的,因为这似乎与使用带有正确格式字符串的 SimpleDateFormatter 是一样的。
在 Java 中有没有类似的解析日期的方法,比如 python-dateutil?我不在乎错误,我只是希望它基本上是完美的。