Java判断字符串是否符合yyyyMMdd日期格式详解编程语言

Java判断字符串是否符合yyyyMMdd日期格式

代码:

    /**  
     * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串  
     *   
     */   
    public static boolean isValidDate(String str) {   
        try {   
            if (str != null && !str.equals("")) {   
                if (str.length() == 8) {   
                    // 闰年标志   
                    boolean isLeapYear = false;   
                    String year = str.substring(0, 4);   
                    String month = str.substring(4, 6);   
                    String day = str.substring(6, 8);   
                    int vYear = Integer.parseInt(year);   
                    // 判断年份是否合法   
                    if (vYear < 1900 || vYear > 2200) {   
                        return false;   
                    }   
                    // 判断是否为闰年   
                    if (vYear % 4 == 0 && vYear % 100 != 0 || vYear % 400 == 0) {   
                        isLeapYear = true;   
                    }   
                    // 判断月份   
                    // 1.判断月份   
                    if (month.startsWith("0")) {   
                        String units4Month = month.substring(1, 2);   
                        int vUnits4Month = Integer.parseInt(units4Month);   
                        if (vUnits4Month == 0) {   
                            return false;   
                        }   
                        if (vUnits4Month == 2) {   
                            // 获取2月的天数   
                            int vDays4February = Integer.parseInt(day);   
                            if (isLeapYear) {   
                                if (vDays4February > 29)   
                                    return false;   
                            } else {   
                                if (vDays4February > 28)   
                                    return false;   
                            }   
                        }   
                    } else {   
                        // 2.判断非0打头的月份是否合法   
                        int vMonth = Integer.parseInt(month);   
                        if (vMonth != 10 && vMonth != 11 && vMonth != 12) {   
                            return false;   
                        }   
                    }   
                    // 判断日期   
                    // 1.判断日期   
                    if (day.startsWith("0")) {   
                        String units4Day = day.substring(1, 2);   
                        int vUnits4Day = Integer.parseInt(units4Day);   
                        if (vUnits4Day == 0) {   
                            return false;   
                        }   
                    } else {   
                        // 2.判断非0打头的日期是否合法   
                        int vDay = Integer.parseInt(day);   
                        if (vDay < 10 || vDay > 31) {   
                            return false;   
                        }   
                    }   
                    return true;   
                } else {   
                    return false;   
                }   
            } else {   
                return false;   
            }   
        } catch (Exception e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
            return false;   
        }   
    }  

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16821.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论