gpt4 book ai didi

Java 日期验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:49 26 4
gpt4 key购买 nike

我需要将用户输入验证为有效日期。用户可以输入 dd/mm/yyyy 或 mm/yyyy(均有效)

为了验证我正在做的事情

try{
GregorianCalendar cal = new GregorianCalendar();
cal.setLenient(false);
String []userDate = uDate.split("/");
if(userDate.length == 3){
cal.set(Calendar.YEAR, Integer.parseInt(userDate[2]));
cal.set(Calendar.MONTH, Integer.parseInt(userDate[1]));
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(userDate[0]));
cal.getTime();
}else if(userDate.length == 2){
cal.set(Calendar.YEAR, Integer.parseInt(userDate[1]));
cal.set(Calendar.MONTH, Integer.parseInt(userDate[0]));
cal.getTime();
}else{
// invalid date
}
}catch(Exception e){
//Invalid date
}

因为 GregorianCalendar 开始月份为 0、30/01/2009 或 12/2009 给出错误。

关于如何解决这个问题的任何建议。

最佳答案

使用简单日期格式。如果解析失败,它会抛出一个 ParseException:

private Date getDate(String text) throws java.text.ParseException {

try {
// try the day format first
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);

return df.parse(text);
} catch (ParseException e) {

// fall back on the month format
SimpleDateFormat df = new SimpleDateFormat("MM/yyyy");
df.setLenient(false);

return df.parse(text);
}
}

关于Java 日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332268/

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