Tôi muốn phân tích một LocalDateTime từ mô hình sau:LocalDateTime.parse() với một mô hình chỉ số
yyyyMMddHHmmss000000
đó có nghĩa là bình thường "yyyy ... ss" và sau đó sáu số không đuôi.
Vì vậy, định dạng hoạt động tốt:
String p = "yyyyMMddHHmmss'000000'";
LocalDateTime.now().format(DateTimeFormatter.ofPattern(p));
và nhưng phân tích cú pháp:
String p, v;
p = "yyyyMMddHHmmss"; // without '000000'
v = "20160131235930";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it works
p = "yyyy-MMddHHmmss'000000'"; // with '-' in between
v = "2016-0131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it works
p = "yyyyMMddHHmmss'000000'"; // with '000000' but without '-'
v = "20160131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it throws Exception
Các Ngoại lệ:
java.time.format.DateTimeParseException: Text '20160131235930000000' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
...
tôi không thể thay đổi định dạng của các giá trị đầu vào. Làm cách nào tôi có thể phân tích cú pháp chính xác? Mẫu của tôi có sai không?
Version Java: 1.8.0_60 trên OSX
Vì mục đích hoàn chỉnh, lỗi: https://bugs.openjdk.java.net/browse/JDK-8031085 – Marcel