Provo ad utilizzare questa funzione ma non funziona con questo caso '12/05/201a 'qualcuno sa perché succede questo?SimpleDateFormat non funziona come previsto
Nel mio test uso questo System.out.println(isThisDateValid("12/05/201a", "dd/MM/yyyy"));
e la risposta era true
ma mi aspetto che il risultato sia falso perché l'anno contiene lettere.
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;
}
prende "201" per "anno". Se metti tutte le lettere al posto dell'anno, non verrà analizzato. Dal momento che si aspetta la cifra '1' al posto di' year'. – Satya
Si aspetta almeno una singola cifra al posto di "anno". – Satya
@Reimeus: 'SimpleDateFormat' non * ignora * lettere, semplicemente non consuma l'intera stringa. Ecco un esempio di ciò non ignorando le lettere: http://ideone.com/gnbTwy –