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输入

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 回答