Tôi muốn xác thực ngày tháng ở phía máy khách nên tôi đã viết mã sau đây. Nhưng thay vì nhận được một ngoại lệ tôi nhận được một đối tượng ngày thích hợp cho ngày 31 của chuỗi ngày tháng hai, rõ ràng là một ngày không hợp lệ.Java 8 LocalDateTime đang phân tích cú pháp ngày không hợp lệ
public class Test {
public static void main(String[] args) {
String dateFormat = "HH:mm:ss MM/dd/yyyy";
String dateString = "11:30:59 02/31/2015";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat, Locale.US);
try {
LocalDateTime date = LocalDateTime.parse(dateString, dateTimeFormatter);
System.out.println(date);
} catch (Exception e) {
// Throw invalid date message
}
}
}
Output: 2015-02-28T11: 30: 59
Có ai biết tại sao LocalDateTime
được phân tích cú pháp ngày này thay vì ném một ngoại lệ.
tại sao bạn lại chờ một ngoại lệ? – Andrew
@AndrewTobilko, có lẽ vì ngày 31 tháng 2 không tồn tại. – aioobe
Nhưng trình định dạng không biết về điều đó. – Satya