gpt4 book ai didi

java - 如何区分解析异常和无效日期范围

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:49 25 4
gpt4 key购买 nike

我写了一个简单的程序

try{
SimpleDateFormat sdf = new SimpleDateFormat("M/dd/yyyy");
sdf.setLenient(false);
//Date date = sdf.parse("1/14/1999"); Apologies for confusion
Date date = sdf.parse(request.getParameter("selectedDate"));
}catch(ParseException ex){
ex.printStackTrace();
}

据我了解,如果日期超出范围或给定的格式错误,将抛出 ParseException。我希望能够区分它们。我怎样才能做到这一点?

编辑:当我说超出范围时,我的意思是 15/15/1999。这就是为什么 setLenient(false)

最佳答案

ParseException 没有提供一种可靠的方法来确定异常本身的原因。您可以调用 parse 两次,将 lenient 设置为 truefalse 并在异常 block 中检查其状态

SimpleDateFormat sdf = new SimpleDateFormat("M/dd/yyyy");
try {
sdf.setLenient(true);
Date date = sdf.parse("1/33/1999");
System.out.println("DateFormat is OK");
sdf.setLenient(false);
date = sdf.parse("1/33/1999");

} catch (ParseException ex) {
ex.printStackTrace();
if (!sdf.isLenient()) {
System.out.println("Invalid date");
} else {
System.out.println("Invalid date pattern");
}
}

关于java - 如何区分解析异常和无效日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16885041/

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