Birisi bana, gösterilen giriş için false
değerini döndürmek için aşağıdaki yöntemi nasıl alacağımı açıklayabilir mi? Beklemediğim bir şey olan true
'u döndürüyor. Neden geçersiz bir tarih gerçek bir tarih olarak başarıyla ayrıştırılıyor?
isDateValid("19/06/2012 5:00, 21:00","dd/MM/yyyy HH:mm")
Bu
false
dönmelidir düşünüyorum, ama görünüşe göre Java öyle düşünmüyor. Sağlanan gerçek tarih dizesi sonunda şu ek karakterleri içerir:
", 21:00"
.
public static boolean isDateValid(String date, String dateFormat)
{
try {
DateFormat df = new SimpleDateFormat(dateFormat);
df.setLenient(false);
Date newDate = df.parse(date);
System.out.println("Date value after checking for validity: " + newDate);
return true;
} catch (ParseException e) {
return false;
}
}