जांचें कि EditText इनपुट से मेल खाता है SimpleDateFormat एंड्रॉइड - एंड्रॉइड, इनपुट, एंड्रॉइड-एडिटेक्स्ट, सरलडेटाफॉर्म

मैंने इस बारे में बहुत कुछ खोजा है, लेकिन मुझे यह देखने का कोई तरीका नहीं मिला कि एक संपादन टेक्स्ट में उपयोगकर्ता द्वारा लिखे गए पाठ को SimpleDateFormat से मेल खाता है, क्या रेगेक्स का उपयोग किये बिना ऐसा करने का एक आसान तरीका है?

यहां मेरा SimpleDateFormat है:

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

और मैं परीक्षण करना चाहता हूं कि कोई स्ट्रिंग उस प्रारूप का सम्मान करता है या नहीं।

उत्तर:

जवाब के लिए 2 № 1

आप एक का उपयोग कर सकते हैं TextWatcher आपके इनपुट में बदलाव सुनने के लिए EditText और इसकी प्रदत्त विधि में से किसी एक में उचित क्रियाएं कर सकता है।

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 № 2

मुझे कोशिश की गई है कि मेरी स्ट्रिंग को एक कोशिश / पकड़ ब्लॉक में किसी तारीख में पार्स करके पार्स करें। यदि स्ट्रिंग पार्सबल है, तो यह SimpleDateFormat से मेल खाता है:

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.
}

संबंधित सवाल
सबसे लोकप्रिय