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 ;失败:falseSystem.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 ;失败:falseSystem.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 ;失败:falseSystem.out.println("日期是否满足要求" dateFlag);}}