【发布时间】:2016-01-07 14:16:05
【问题描述】:
DateTimeFormatter 中可选模式的顺序如何影响解析操作?
我正在运行这个程序,想知道为什么最后一行会引发异常,而不是前三个。
public static void main(String[] args) {
String p1 = "[EEEE][E] dd-MM-yyyy";
String p2 = "[E][EEEE] dd-MM-yyyy";
String date1 = "Thu 07-01-2016";
String date2 = "Thursday 07-01-2016";
parse(date1, p1); //OK
parse(date1, p2); //OK
parse(date2, p1); //OK
parse(date2, p2); //Exception
}
private static void parse(String date, String pattern) {
DateTimeFormatter fmt = DateTimeFormatter.ofPattern(pattern, Locale.ENGLISH);
System.out.println(fmt.parse(date));
}
最后一行的异常是:
java.time.format.DateTimeParseException:无法在索引 3 处解析文本 'Thursday 07-01-2016'
【问题讨论】:
-
如果
java.time提供带有后备模式(如jodatime)的DateTimeFormatter,我会很好。 -
@SotiriosDelimanolis 有一个关于在解析中添加对“OR”的支持的增强请求:JDK-8132536
-
@Tunaki Java 的错误跟踪站点太慢了。希望请求被接受。
标签: java parsing java-8 java-time