gpt4 book ai didi

java - 如果年份输入错误,日期验证将不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:46:10 24 4
gpt4 key购买 nike

我正在使用以下代码来验证日期。该代码在几天和几个月内都可以正常工作,但它接受超过 5 位数字的年份值,但格式为我指定的“yyyy”。

问题为什么在 21114 的情况下返回 true 因为它不是我指定格式的有效日期。?

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class raju {

public static void main(String[] args) {
boolean a=raju.isThisDateValid("12/12/21114","MM/dd/yyyy");
System.out.println(a);
}


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

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

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

try {

//if not valid, it will throw ParseException
Date date = sdf.parse(dateToValidate);
System.out.println(date);

} catch (ParseException e) {

e.printStackTrace();
return false;
}

return true;
}

}

最佳答案

来自SimpleDateFormat java文档,

Otherwise, calendar system specific forms are applied. For both formatting and parsing, if the number of pattern letters is 4 or more, a calendar specific long form is used. Otherwise, a calendar specific short or abbreviated form is used.

对于您似乎想要的行为,您需要检查年份是否小于 10000。

关于java - 如果年份输入错误,日期验证将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177111/

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