Tôi đang cố phân tích ngày của định dạng dd-MMM-yyyy
.java.time.format.DateTimeParseException cho định dạng dd-MMM-yyyy
package com.company;
import javax.swing.text.DateFormatter;
import java.time.format.DateTimeFormatter;
import java.time.*;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
// write your code here
MonthDay m;
Locale.setDefault(Locale.ENGLISH);
DateTimeFormatter dTF = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
String dateString = "12-jan-1900";
try
{
LocalDate ddd = LocalDate.parse(dateString,dTF);
System.out.println(ddd.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
//System.out.println(d.toString());
}
}
Nó ném ngoại lệ sau
java.time.format.DateTimeParseException: Text '12-jan-1900' could not be parsed at index 3
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDate.parse(LocalDate.java:400)
at com.company.Main.main(Main.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Nó phân tích tốt cho định dạng dd-MM-yyyy
nhưng không thành công với định dạng dd-MMM-yyyy
. Tôi mệt mỏi thiết lập Locale.US
cũng có, nhưng nó không thành công trong trường hợp đó quá.
Thật là một mớ hỗn độn. Và Oracle từ chối cải tiến ở đây, xem [JDK-bug-log] này (https://bugs.openjdk.java.net/browse/JDK-8141245) –