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;
}
}
这样行吗?