2017-03-21 3 views
0

Ich habe ein Problem Fehler überprüfen, ob ein Datum gültig ist.Fehlerüberprüfung - Java

Ich habe versucht, den Code unten, aber ich bekomme immer noch einen Fehler.

if (sales == null || sales != "mm/dd/yyyy" { 
    errors.add("phone", new ActionMessage("error.sales.required")); 
} 
+1

Sie vermissen eine schließende Klammer) '' nach „mm/tt /“ – shash678

+0

Was die Fehlermeldung ist, wie es scheint Sie eine schließende Klammer nach dem Datum Vergleich fehlt. – Juniar

Antwort

0

ich das nur so schreiben, aber Sie können die Regex passen Sie das richtige Datum entsprechen. Dies ist unten für Datumsformat wie 30.12.2004. Es werden zwei beliebige Zahlen für Monat und Datum benötigt. Möglicherweise müssen Sie noch einen Schritt weiter gehen, um den Wert so anzupassen, dass für Tage keine Eingabewerte größer als 31 oder Werte über 12 für einen Monat genommen werden.

String sales = "12/12/2004"; 
if (sales == null || !sales.matches("\\d{2}\\/{1}\\d{2}\\/{1}\\d{4}")){ 
    System.out.println("Sale is null or date format doesn't match");  
} 

Mit diesem unter Sie können eine Stelle für den Monat Wert und eine Ziffer für Datumswert haben, und die Regex immer noch den Eingangswert passieren würde.

!sales.matches("\\d{1,2}\\/{1}\\d{1,2}\\/{1}\\d{4}") 
0

Sie können auch diese Funktion verwenden, die das im String-Format angegebene Datum mit dem erforderlichen Format analysiert. Gibt true zurück, wenn es parsen kann oder auch false. Ersetzen Sie Ihren Code sales != "mm/dd/yyyy" durch isValidDateFormat(sales, "MM/dd/yyyy").

public static boolean isValidDateFormat(final String data, final String dateFormat){ 
     try{ 
      SimpleDateFormat formatter = new SimpleDateFormat(dateFormat); 
      formatter.format(date); 
      return true; 
     } 
     catch(final ParseException ex){ 
      return false; 
     } 
    } 
Verwandte Themen