Java判斷字串是否符合yyyyMMdd日期格式
阿新 • • 發佈:2018-12-15
/** * 判斷引數的格式是否為“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; } }