0

私はこれについて多くのことを検索しましたが、 EditText でユーザーが書いたテキストが SimpleDateFormat と一致するかどうかを確認する方法が見つかりませんでした。regex を使用せずにそれを行う簡単な方法はありますか?

これが私の SimpleDateFormat です:

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

そして、文字列がその形式を尊重しているかどうかをテストしたいと思います。

4

2 に答える 2

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
    }
});
于 2013-05-06T15:16:24.433 に答える
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.        
}
于 2013-05-22T06:22:42.077 に答える