package com.huyu.nan;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Test {
public static void main(String[] args) {
DateTimeFormatter ldt = DateTimeFormatter.ofPattern("yyyyMMdd");
boolean dateFlag = true;
try {
LocalDate.parse(str, ldt);
} catch (DateTimeParseException | NullPointerException e) {
dateFlag = false;
}
// 成功:true ;失败:false
System.out.println("日期是否满足要求" + dateFlag);
}
}
注意:上面的判断方法是不严格的,比如20190230会通过判断,但这个日期是不存在的。
严格方式:
package com.huyu.nan;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Test {
public static void main(String[] args) {
DateTimeFormatter ldt = DateTimeFormatter.ofPattern(format.replace("y", "u"))
.withResolverStyle(ResolverStyle.STRICT);
boolean dateFlag = true;
try {
LocalDate.parse(str, ldt);
} catch (DateTimeParseException | NullPointerException e) {
dateFlag = false;
}
// 成功:true ;失败:false
System.out.println("日期是否满足要求" + dateFlag);
}
}
当然你也可以不用java8,用老方法判断:
package com.huyu.nan;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Test {
public static void main(String[] args) {
boolean dateFlag = true;
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setLenient(false);
sdf.parse(str);
} catch (ParseException | NullPointerException e) {
dateFlag = false;
}
// 成功:true ;失败:false
System.out.println("日期是否满足要求" + dateFlag);
}
}