public static void main(String[] args) {
String inputStr ="2025/11/30 12:00 - 22:00";
String regex =
"^\\d{4}/(0?[1-9]|1[0-2])/(0[1-9]|[12]\\d|3[01])\\s+([01]\\d|2[0-3]):[0-5]\\d\\s*-\\s*([01]\\d|2[0-3]):[0-5]\\d$"; // 结束时间
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(inputStr);
if (!matcher.matches()) {
throw new IllegalArgumentException("格式无效");
}else{
String[] parts = inputStr.split("-");
ZoneId zoneId = ZoneId.of("Asia/Shanghai");
DateTimeFormatter fmt1 = DateTimeFormatter.ofPattern("yyyy/M/d HH:mm");
LocalDateTime localDateTime = LocalDateTimeUtil.parse(parts[0].trim(),fmt1);
ZonedDateTime zdt1 = localDateTime.atZone(zoneId);
Date date1 = Date.from(zdt1.toInstant());
String startDateStr = parts[0].trim().split("\\s+")[0];
DateTimeFormatter fmt2 = DateTimeFormatter.ofPattern("yyyy/M/d HH:mm");
LocalDateTime localDateTime2 = LocalDateTimeUtil.parse(startDateStr+" "+parts[1].trim(),fmt2);
ZonedDateTime zdt2 = localDateTime2.atZone(zoneId);
Date date2 = Date.from(zdt2.toInstant());
if(date1.after(date2)){
System.out.println("格式无效不通过");
}
System.out.println("通过");
}
}
08-30
1万+

06-10
2763

10-26
2097
