jsp判断字符串是否为yyyy-MM-dd 或yyyy/MM/dd日期数据。

String str1="2000-1-1";

String str2="2000-1-32";

String str3="2000/2/2";

str3="2018/09/09a";

boolean str3IsDate=isDate0(str3);
out.println("str3 isDate:"+str3IsDate);

输出:str3 isDate:false

//判断字符串是否为yyyy-MM-dd 或yyyy/MM/dd日期数据。
    public static boolean isDate0(String str) {
        boolean isDate=false;
        if(str.length()>10)
        {
            return isDate;
        }
        else
        {
            isDate=isDate2(str);
            if(isDate==false)
            {
                isDate=isDate1(str);
            }
            else
            {
                str=str.replace("/", "-");
                isDate=isDate1(str);
            }
            return isDate;
        }
    }
    //判断字符串是否为yyyy-MM-dd 日期数据。
    //https://blog.csdn.net/habewow/article/details/80421157
    public static boolean isDate1(String str) {
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");//括号内为日期格式,y代表年份,M代表年份中的月份(为避免与小时中的分钟数m冲突,此处用M),d代表月份中的天数
        try {
            sd.setLenient(false);//此处指定日期/时间解析是否不严格,在true是不严格,false时为严格
            sd.parse(str);//从给定字符串的开始解析文本,以生成一个日期
        } catch (Exception e) {
            return false;
        }
        return true;
    }
    //判断字符串是否为yyyy/MM/dd字符数据。
    public static boolean isDate2(String str) {
        SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd");//括号内为日期格式,y代表年份,M代表年份中的月份(为避免与小时中的分钟数m冲突,此处用M),d代表月份中的天数
        try {
            //sd.setLenient(false);//此处指定日期/时间解析是否不严格,在true是不严格,false时为严格
            sd.parse(str);//从给定字符串的开始解析文本,以生成一个日期
        } catch (Exception e) {
            return false;
        }
        return true;
    }

猜你喜欢

转载自blog.csdn.net/gditzmr/article/details/85119521