我尝试使用 dd/MM/yyyy
格式来检查一个有效的日期字符串输入,代码如下:
String input = Scanner.nextLine();
DateTimeFormatter formater = DateTimeFormatter.ofPattern("dd/MM/yyyy");
try{
LocaleDate.parse(input, formater);
}
catch(Exception e)
但它无法检查以下一些规则:
Leap year, February 29 days.
Common year, February 28 days.
Month 1, 3, 5, 7, 8, 10, 12, max 31 days.
Month 4, 6, 9, 11, max 30 days.
当我使用input = "30/02/2022"
时,它是合法的。
我使用的是netbeans 8.2
和jdk 1.8
。它们是否支持用于检查这些规则的某些方法?
uuuu
用于检查 ERA,因此它有助于检查年份是否为闰年。而.withResolverStyle(ResolverStyle.STRICT)
用于检查“1月、3月、5月、7月、8月、10月和12月最多31天,4月、6月、9月和11月最多30天”的情况。而SMART
只是检查月份是否在1到12之间,日期是否在1到31之间。我说得对吗? - hoàng nguyễn