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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南