Überprüfen Sie, ob die EditText-Eingabe mit SimpleDateFormat Android übereinstimmt - Android, Eingabe, Android-Editiertext, Simplydateformat

Ich habe viel darüber gesucht, aber ich habe keine Möglichkeit gefunden zu überprüfen, ob ein Text, der vom Benutzer in einem EditText geschrieben wurde, mit einem SimpleDateFormat übereinstimmt, gibt es eine einfache Möglichkeit, dies ohne Verwendung von Regex zu tun?

Hier ist mein SimpleDateFormat:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Und ich möchte testen, ob eine Zeichenfolge dieses Format respektiert.

Antworten:

2 für die Antwort № 1

Sie können eine verwenden TextWatcher um Änderungen am Eingang zu hören EditText und kann geeignete Aktionen in jeder der bereitgestellten Methoden durchführen.

yourEditText.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

@Override
public void afterTextChanged(Editable s) {
//you may perform your checks here
}
});

0 für die Antwort № 2

Ich habe einen Weg gefunden, dies zu tun, indem ich meine Zeichenfolge in ein Datum in einem try / catch-Block analysiere. Wenn die Zeichenfolge analysierbar ist, stimmt sie mit SimpleDateFormat überein:

try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = ((EditText) findViewById(R.id.editTextDate)).getText().toString(); // EditText to check
java.util.Date parsedDate = dateFormat.parse(date);
java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
// If the string can be parsed in date, it matches the SimpleDateFormat
// Do whatever you want to do if String matches SimpleDateFormat.
}
catch (java.text.ParseException e) {
// Else if there"s an exception, it doesn"t
// Do whatever you want to do if it doesn"t.
}

Verwandte Fragen