Tôi cần phải phân tích cú pháp một chuỗi thành một số LocalDate
. Chuỗi trông giống như 31.* 03 2016
trong các thuật ngữ regex (nghĩa là .*
có nghĩa là có thể có 0 hoặc nhiều ký tự không xác định sau số ngày).Ký tự đại diện trong DateTimeFormatter
Ví dụ đầu vào/đầu ra: 31xy 03 2016
==>2016-03-31
Tôi đã hy vọng để tìm thấy một cú pháp wildcard trong tài liệu DateTimeFormatter để cho phép một mô hình như:
LocalDate.parse("31xy 03 2016", DateTimeFormatter.ofPattern("dd[.*] MM yyyy"));
nhưng tôi không thể tìm thấy bất cứ điều gì .
Có cách nào đơn giản để thể hiện các ký tự không xác định tùy chọn với số DateTimeFormatter
không?
ps: Tôi rõ ràng có thể sửa đổi chuỗi trước khi phân tích cú pháp nhưng đó không phải là những gì tôi yêu cầu.
Có lý do nào bạn không muốn xử lý trước chuỗi trước khi chuyển nó vào 'DateTimeFormatter' không? Một cái gì đó khác bạn có thể làm là tạo ra lớp của riêng bạn mà mở rộng 'DateTimeFormatter' và ghi đè phương thức' ofPattern() ', nhưng điều này dường như không được khuyến khích. –
Tôi muốn một giải pháp thanh lịch với DateTimeFormatter - nếu nó không tồn tại tôi sẽ đi cho kế hoạch B. DateTimeFormatter là cuối cùng như vậy là không thể mở rộng. – assylias
Ah đã không nhận thức được rằng, tốt để biết! –