检查EditText输入是否与SimpleDateFormat Android匹配

时间:2013-05-06 15:12:10

标签: android input android-edittext simpledateformat

我已经搜索了很多关于这一点但是我没有找到方法来检查用户在EditText中写的文本是否与SimpleDateFormat匹配,是否有一种简单的方法可以在不使用正则表达式的情况下执行此操作?

这是我的SimpleDateFormat:

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

我想测试String是否尊重该格式。

2 个答案:

答案 0 :(得分:2)

您可以使用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
    }
});

答案 1 :(得分:0)

通过将我的字符串解析为try / catch块中的日期,我找到了一种方法。如果字符串是可解析的,则它与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.        
}