・ ↓ Cliquez ici pour la mise en œuvre de la validation «Année» ↓ [Android] Comment mettre en œuvre une validation qui repousse les «années» invalides? ??
ValidationUtil.java
    /**
     *Vérifiez s'il s'agit d'une date valide
     *Invalider les dates telles que le 13 et le 32
     *
     * @param inputBirthDateString
     * @return
     */
    public static Boolean dateValidation(String inputDateString){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        //Point 1
        dateFormat.setLenient(false); 
        Date parsedDate = null;
        try {
        //Point 2
            parsedDate = dateFormat.parse(inputDateString);
        } catch (ParseException e) {
            e.printStackTrace();
            return false;
        }
        //Point 3
        return dateFormat.format(parsedDate).equals(inputDateString);
    }
Lenient: Généreux, miséricordieux, compatissant, (...) généreux, tolérant, doux → setLenient (false) élimine la générosité = signifie faire un contrôle strict.
La valeur par défaut est true, et avec ce paramètre, les dates inexistantes sont automatiquement déplacées vers le haut ou vers le bas. (Exemple: 32 janvier → 1er février)
Convertissez le type String en type Data à l'aide de SimpleDateFormat. Si la date est normale, l'analyse réussit. Renvoie false si la date n'est pas valide.
Il ne semble y avoir aucun problème avec le traitement jusqu'au point 2, mais il y a un problème en l'état. C'est parce que SimpleDateFormat traite avec une correspondance de préfixe. → Exemple: Si vous créez une instance de SimpleDateFormat au format de date "aaaa / MM / jj", vous pouvez mettre en forme la valeur "2017/12 / 1A" et elle sera traitée comme "1er décembre 2017".
→ Par conséquent, à la fin, "chaîne de caractères à valider" et "chaîne de caractères après conversion avec SimpleDateFormat" sont comparées, et par exemple, si 2017/12 / 1A est saisi, false est renvoyé.