Tôi cần phải phân tích cú pháp ngày tháng từ chuỗi đầu vào sử dụng mẫu ngày "yyyy-MM-dd" và nếu ngày sẽ có định dạng khác, hãy báo lỗi.Phân tích cú pháp ngày không chính xác bằng SimpleDateFormat, Java
Đây là mảnh của tôi về mã nơi tôi phân tích ngày:
private void validateDate() throws MyException {
Date parsedDate;
String DATE_FORMAT = "yyyy-MM-dd";
try{
parsedDate = new SimpleDateFormat(DATE_FORMAT).parse(getMyDate());
System.out.println(parsedDate);
} catch (ParseException e) {
throw new MyException(“Error occurred while processing date:” + getMyDate());
}
}
Khi tôi có chuỗi như "2011/06/12" như đầu vào trong mydate tôi sẽ nhận được đầu ra "Thu ngày 29 tháng 9 00:00 : 00 EEST 2011 ", điều này rất tốt.
Khi tôi gửi một chuỗi không chính xác như “2011-0612”, tôi sẽ gặp lỗi như mong đợi.
Sự cố bắt đầu khi tôi đang cố chuyển một chuỗi vẫn có hai dấu gạch nối "", nhưng số chữ số sai. Ví dụ:
chuỗi đầu vào “2011-06-1211” kết quả "Tue Sep 23 00:00:00 EEST 2014".
chuỗi đầu vào “2011-1106-12” kết quả "Mon Feb 12 00:00:00 EET 2103".
Tôi không thể thay đổi định dạng đầu vào của ngày chuỗi.
Làm cách nào để tránh?
Tôi không chắc chắn cách "2011-06-12" làm đầu vào trong myDate Tôi sẽ nhận được kết quả "Thu Sep 29 00:00:00 EEST 2011" là tốt. Bạn sẽ nhận được ngày 12 tháng 6 là đầu ra - không phải ngày 29 tháng 9 ... –