[JAVA] [Android] Validierung für Datumseingabe erstellen!

Validierung der Datumsangabe


Es kann vorkommen, dass ein Benutzer bei der Eingabe eines Geburtsdatums oder eines Reservierungsdatums einen falschen Eingabewert ungültig machen oder einen Fehlerdialog anzeigen möchte. Ich habe die Implementierung der Validierung in einem solchen Fall zusammengefasst!

・ ↓ Klicken Sie hier für die Validierungsimplementierung "Jahr" ↓ [Android] Wie implementiere ich eine Validierung, die ungültige "Jahre" abwehrt? ??

Implementierungscode

ValidationUtil.java


    /**
     *Überprüfen Sie, ob es sich um ein gültiges Datum handelt
     *Ungültige Daten wie 13. und 32 ..
     *
     * @param inputBirthDateString
     * @return
     */
    public static Boolean dateValidation(String inputDateString){

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");

        //Punkt 1
        dateFormat.setLenient(false); 
        Date parsedDate = null;
        try {

        //Punkt 2
            parsedDate = dateFormat.parse(inputDateString);
        } catch (ParseException e) {
            e.printStackTrace();
            return false;
        }

        //Punkt 3
        return dateFormat.format(parsedDate).equals(inputDateString);
    }


Punkt 1

Lenient: Großzügig, barmherzig, mitfühlend, (...) großzügig, tolerant, süß → setLenient (false) eliminiert Großzügigkeit = bedeutet eine strenge Überprüfung.

Die Standardeinstellung ist true. Mit dieser Einstellung werden nicht vorhandene Daten automatisch nach oben oder unten verschoben. (Beispiel: 32. Januar → 1. Februar)

Punkt 2

Konvertieren Sie den String-Typ mit SimpleDateFormat in den Datentyp. Wenn das Datum normal ist, ist die Analyse erfolgreich. Gibt false zurück, wenn das Datum ungültig ist.

Punkt 3

Es scheint kein Problem mit der Verarbeitung bis Punkt 2 zu geben, aber es gibt ein Problem, wie es ist. Dies liegt daran, dass SimpleDateFormat mit einer Präfixübereinstimmung verarbeitet wird. → Beispiel: Wenn Sie eine Instanz von SimpleDateFormat im Datumsformat "JJJJ / MM / TT" erstellen, können Sie den Wert "2017/12 / 1A" formatieren und dieser wird als "1. Dezember 2017" behandelt.

→ Daher werden am Ende "zu überprüfende Zeichenfolge" und "Zeichenfolge nach Konvertierung mit SimpleDateFormat" verglichen. Wenn beispielsweise 2017/12 / 1A eingegeben wird, wird false zurückgegeben.

Recommended Posts

[Android] Validierung für Datumseingabe erstellen!
Erstellen Sie Ihre eigene Android-App für das Java-Lernen
Standardwert von Android: exportiert
Erstellen Sie erweiterte Funktionen für Yellowfin
Build Spring für Android 2.0.0