Pav*_*sov 20 java validation parsing date
SimpleDateFormat是一种非常友好的解析器,可以滚动生成的日期而不是抛出错误.如何在没有正则表达式等的情况下严格解析日期?
fmt = new SimpleDateFormat("dd.MM.yyyy")
fmt.parse("10.11.2012") // it works
fmt.parse("10.1150.2012") // it works but it's unwanted
Run Code Online (Sandbox Code Playgroud)
sp0*_*00m 32
fmt.setLenient(false); 是你在找什么.
Ort*_*kni 12
您还可以在Java 8及更高版本(教程)中使用java.time包.它的解析严格检查日期值.
例如:
String strDate = "20091504";
TemporalAccessor ta = DateTimeFormatter.ofPattern("yyyyMMdd").parse(strDate);
Run Code Online (Sandbox Code Playgroud)
直接给出:
Exception in thread "main" java.time.format.DateTimeParseException:
Text '20091504' could not be parsed:
Invalid value for MonthOfYear (valid values 1 - 12): 15
Run Code Online (Sandbox Code Playgroud)