入力日付の形式を把握するために正規表現を使用しています。これは私が使用しているパターンの1つです
^((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));
}
}
コードは単純化されていますが、この単純化されたバージョンでも、誤った結果が返されます。提案/解決策をありがとう。