gpt4 book ai didi

java - 使用 SimpleDateFormat 验证日期

转载 作者:行者123 更新时间:2023-12-01 18:59:16 26 4
gpt4 key购买 nike

我想创建一个使用 SimpleDateFormat 验证日期的方法。

如果日期有效(例如 02/09/20122/09/201202/9/2012),此方法应返回true

但是如果日期格式错误(例如 02/09/201X)或逻辑错误(例如 32/09/2012),此方法应该返回

我尝试这样写这个方法:

private boolean isValidDate(String date) {
DateFormat df1 = new SimpleDateFormat("dd-MM-yyyy");
DateFormat df2 = new SimpleDateFormat("d-MM-yyyy");
DateFormat df3 = new SimpleDateFormat("dd-M-yyyy");
Date d = null;
String s = null;

try {
d = df1.parse(date);
}catch (Exception e1) {
try{
d = df2.parse(date);
}catch (Exception e2) {
try {
d= df3.parse(date);
}catch (Exception e3) {
return false;
}
s = df3.format(d);
return date.equals(s);
}
s = df2.format(d);
return date.equals(s);
}
s = df1.format(d);
return date.equals(s);
}

但是如果我验证一个日期,例如2/09/2012,它会返回false(实际上它应该返回true) 。我不知道为什么......任何人都可以找到我的代码有什么问题,或者这个逻辑是完全错误的?有没有更好的方法来进行此验证?

最佳答案

您的输入格式为 2/09/2012 而不是 2-09-2012,因此您的日期格式应如下所示:

    DateFormat df1 = new SimpleDateFormat("dd/MM/yyyy");
DateFormat df2 = new SimpleDateFormat("d/MM/yyyy");
DateFormat df3 = new SimpleDateFormat("dd/M/yyyy");

关于java - 使用 SimpleDateFormat 验证日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com