关于SimpleDateFormat

String date = "2011-01-12 26:12:12";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = format.parse(date);

本意是让这个date不合法的,因为小时大于24, 但结果是合法的, 日期自动加1, 返回2011-01-13 02:12:12
试过将format.setLenient()设为true/false, 都不管用
any suggestion?

String a = "2011-01-12 26:12:12";
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String b = sf.format(sf.parse(a));
System.out.println(a.equals(b));

这样就可以了。解析前和解析后为false所以不合法,合法的话就返回true

你想让他 parse 的时候就 检查不合法?

我都一直当成功能用. 汗... :( 我觉得是个不错的功能
我获得一个时间,要将他加上一天. 我自己控制的话还得考虑月底. 闰年二月等问题

直接在天上+1 然后再格一次 嘿嘿 这些顾虑全没了,哈哈 Calendar 也有这功能
太爽了 干嘛要出错类?? :D 我觉得很这个用起来很happy

验证何不用 时间控件/js验证 处理一个小时间验证的问题...

public class test {
public static void main(String[] args) {
try {
String a = "2011-01-12 28:12:12";
if(invalidDate(a)){
System.out.println("合法");
}else{
System.out.println("不合法");
}

    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static boolean invalidDate(String date) {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sf.setLenient(false);
    try {
        sf.parse(date);
    } catch (ParseException e) {

// e.printStackTrace();
return false;
}
return true;
}
}
这样行吗?