在JAVA中遇到检测日期是否合法的情况,例如2月30日,本以为simpledateformat类会转换不成功,经过测试,发现会被转换为3月2日。

经过查找资料,发现要设置参数,让SimpleDateFormat类parse日期字符串时候使用严格模式。

测试代码如下

public class TestMain {

    public static void main(String [] argv){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String datestr = "2014-2-30";
        Date date = null;
        try {
            //此处设置是否以宽松模式来检测日期,如果设置为true,2月30日会被
            //转换成3月2日,设置为false,会爆出异常
            sdf.setLenient(false);
            date = sdf.parse(datestr);
        } catch (ParseException ex) {
            System.out.println("日期解析失败!"+ex.getMessage());
        }
        System.out.println(date);
    }

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注