Tôi cố gắng sử dụng chức năng này nhưng nó không hoạt động với trường hợp này '12/05/201a 'ai đó biết tại sao xảy ra điều này?SimpleDateFormat không hoạt động như mong đợi
Trong thử nghiệm của tôi, tôi sử dụng số System.out.println(isThisDateValid("12/05/201a", "dd/MM/yyyy"));
và câu trả lời là true
nhưng tôi cho rằng kết quả sẽ sai vì năm chứa chữ cái.
public static boolean isThisDateValid(String dateToValidate, String dateFromat)
{
if (dateToValidate == null)
{
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);
try
{
//if not valid, it will throw ParseException
Date date = sdf.parse(dateToValidate);
System.out.println(date);
} catch (ParseException e)
{
e.printStackTrace();
return false;
}
return true;
}
mất '201' cho' năm'. Nếu bạn đặt tất cả các chữ cái vào vị trí của năm nó sẽ không phân tích cú pháp. Vì nó hy vọng chữ số '1' thay cho' năm'. – Satya
Nó hy vọng ít nhất một chữ số thay cho 'năm'. – Satya
@Reimeus: 'SimpleDateFormat' không * bỏ qua * chữ cái, nó chỉ không tiêu thụ toàn bộ chuỗi. Dưới đây là một ví dụ về nó không bỏ qua các chữ cái: http://ideone.com/gnbTwy –