1

ユーザーは次の形式で日付を入力する必要がありますyyyy-MM-dd。だから私は自分の側でそれをチェックします:

public static boolean isDateValid(SimpleDateFormat dateFormat, String date) {
    try {
        dateFormat.parse(date);
        return true;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }
}

12-12-2012しかし、私が入力してもtrueを返します

SimpleDateFormat("yyyy-MM-dd")
4

1 に答える 1

2

解析DateFormat.setLenient(false)を回避するために、を使用できます。-lenient

    try {
        dateFormat.setLenient(false);
        dateFormat.parse(date);
        return true;
    } catch (ParseException e) {
        e.printStackTrace();
        return false;
    }

ドキュメントから:-

寛大な構文解析では、パーサーはヒューリスティックを使用して、このオブジェクトの形式と正確に一致しない入力を解釈する場合があります。厳密な解析では、入力はこのオブジェクトの形式と一致する必要があります。

于 2012-12-04T15:39:10.960 に答える