问题描述
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? 问题补充:chenxiang105 写道
解决方案
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
解决方案二:
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;}}这样行吗?
解决方案三:
验证何不用 时间控件/js验证 处理一个小时间验证的问题...
解决方案四:
我都一直当成功能用. 汗... 我觉得是个不错的功能 我获得一个时间,要将他加上一天. 我自己控制的话还得考虑月底. 闰年二月等问题直接在天上+1 然后再格一次 嘿嘿 这些顾虑全没了,哈哈 Calendar 也有这功能太爽了 干嘛要出错类?? 我觉得很这个用起来很happy
解决方案五:
你想让他 parse 的时候就 检查不合法?