我正在使用正则表达式来确定输入日期的格式。这是我正在使用的模式之一
^((18[5-9]|19[0-9]|20[0-9])\\d)(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$
所以约束是在 1850 和 2099 之间有年份。例如,如果我在从中提取年、月和日时将此字符串作为日期 20011212 传递,这就是我得到的:年:2001,月:200,天:12。任何想法为什么?
pattern = Pattern.compile(PATTERN);
matcher = pattern.matcher(dateString);
if (matcher.matches()){
matcher.reset();
if (matcher.find()){
Integer.parseInt(matcher.group(1));
Integer.parseInt(matcher.group(2));
Integer.parseInt(matcher.group(3));
}
}
代码被简化了,但即使在这个简化的版本上,它也会返回错误的结果。感谢您提供任何建议/解决方案。