gpt4 book ai didi

java - Calendar setLenient 方法不允许检查年份字段的完整性

转载 作者:行者123 更新时间:2023-12-01 09:28:37 25 4
gpt4 key购买 nike

我使用此方法来检查用户输入的日期是否有效:

  private boolean isThisDateValid(Date dateToValidate) {
Calendar cal = Calendar.getInstance();
if (dateToValidate == null) {
return false;
}

cal.setLenient(false);
cal.setTime(dateToValidate);
try {
cal.getTime();
} catch (Exception e) {
return false;
}
return true;
}

问题是,当用户写了错误的年份(大年份)时,它不会抛出异常示例:12/09/2016666

我应该用单独的方法检查年份字段的健全性吗?

最佳答案

尽管距离现在还很远,2016666 仍然是一个有效的年份。距离现在大约有 200 万年,所以我可以理解为什么在很多情况下你可能不想要它,但是对于日期 validator 来说这不是一个合法的日期会很奇怪。这确实是一种不正确的行为。

如果您想要进行额外的验证(例如确保年份字段不超过当前年份),您需要自己执行此操作并抛出适当的异常。

关于java - Calendar setLenient 方法不允许检查年份字段的完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39642925/

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