gpt4 book ai didi

java - setLenient(false) 让通过日期格式验证

转载 作者:行者123 更新时间:2023-12-02 02:13:57 25 4
gpt4 key购买 nike

我正在尝试使用下面的代码验证日期格式

class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String dateFormat = "yyyy-MM-dd";
String dateToValidate = "18-12-18";

if(!isThisDateValid(dateToValidate,dateFormat)){
System.out.println("Date is invalid");
}
else{
System.out.println("Date is valid");
}
}


public static boolean isThisDateValid(String dateToValidate, String dateFromat){

if(dateToValidate == null){
return false;
}

SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);

try {
Date date = sdf.parse(dateToValidate);

} catch (ParseException e) {
return false;
}

return true;
}
}

但失败了就让它通过了。

此处提供测试代码:https://ideone.com/ryN7HO

有什么想法吗?

最佳答案

18 年是有效年份,SimpleDateFormat 不强制执行特定模式(并且不需要零填充值)。但是,您可以使用正则表达式添加对您的模式的检查。四位数字,一个破折号,两位数字,一个破折号和两位数字。就像,

if (!dateToValidate.matches("\\d{4}-\\d{2}-\\d{2}")) {
return false;
}

注意:此代码不符合 Y10k 标准。

关于java - setLenient(false) 让通过日期格式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566571/

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