如何检查正确的日期格式模式?

Sit*_*nsu 0 java format date

我面临与日期格式模式相关的问题.假设用户提供了错误的输入'200000-05-16',我有这样的格式mm/dd/yyyy.我想在java类中检查格式输入日期是错误的.

怎么可能在java中做?

rom*_*ret 6

这是两个解决方案.我推荐第二个(mkyong教程).

解决方案1(Regexp)

String datePattern = "\\d{2}-\\d{2}-\\d{4}";

String date1 = "200000-05-16";
String date2 = "05-16-2000";

Boolean isDate1 = date1.matches(datePattern);
Boolean isDate2 = date2.matches(datePattern);

System.out.println(isDate1);
System.out.println(isDate2);
Run Code Online (Sandbox Code Playgroud)

输出:

false
true
Run Code Online (Sandbox Code Playgroud)

这种模式不是更好的模式,因为你可以通过"99"作为一个月或一天,它会没问题.请查看此帖子以获得良好的模式:正则表达式验证日期格式dd/mm/yyyy

解决方案2(SimpleDateFormat)

此解决方案采用SimpleDateFormat来检查它是否有效.请查看此链接以获得完整且出色的解决方案:http://www.mkyong.com/java/how-to-check-if-date-is-valid-in-java/