【发布时间】:2020-08-13 13:48:17
【问题描述】:
我想进行日期格式验证。它应该是 yyyy-mm-dd 并且为了满足我的要求,我遵循了下面的代码,但它不起作用。
我的输入请求应该是 2020-13-08 或 2020-13-08T23:00:00Z 但应该是 2020-08-13 或 2020-08-13T23:00:00Z
public static boolean validateJavaDate(String strDate) {
/*
* Set preferred date format, For example MM-dd-yyyy, MM.dd.yyyy,dd.MM.yyyy etc.
*/
SimpleDateFormat sdfrmt = new SimpleDateFormat("yyyy-mm-dd");
sdfrmt.setLenient(false);
try {
Date javaDate = sdfrmt.parse(strDate);
System.out.println(strDate + " is valid date format");
}
catch (ParseException e) {
System.out.println(strDate + " is Invalid Date format");
return false;
}
return true;
}
【问题讨论】:
-
My input request should be either 2020-13-08 or 2020-13-08T23:00:00Z but it should be 2020-13-08 or 2020-13-08T23:00:00Z不明白。你能澄清一下吗?另外,在当前代码中什么不起作用? -
月份的模式应该是
M而不是m。我猜你想验证第 13 个月是错误的。 -
我的输入应该像 2020-13-08 或 2020-13-08T23:00:00Z 但这些应该是有效的格式,如 2020-08-13 或 2020-08-13T23: 00:00Z
-
@AbhiRam 您能否编辑问题以向读者澄清?
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和Instant。
标签: java simpledateformat