1. 程式人生 > >Java判斷字符串是否符合yyyyMMdd日期格式

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

參數 pan ret static star 字符 ted null 月份

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; } }

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