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:文本 '週四2016年7月1日' 無法在索引3
如果'java.time'提供了一個帶有後備模式(如jodatime)的'DateTimeFormatter',我一定會很好。 –
@SotiriosDelimanolis有一個關於在解析中添加對「OR」的支持的增強請求:[JDK-8132536](https://bugs.openjdk.java.net/browse/JDK-8132536) – Tunaki
@Tunaki Java的錯誤跟蹤站點是太慢了。希望這個請求被接受。 –