以下のDateパターンの正規表現をコードで知りたかったのです。Javaの正規表現でパターンをチェックするYYYY MMM DD
String line = "2017 Apr 04";
if (line.matches("[T]|[T\\+\\d{0,2}]")) {
System.out.println(line);
}
else
{
System.out.println("test");
}
以下のDateパターンの正規表現をコードで知りたかったのです。Javaの正規表現でパターンをチェックするYYYY MMM DD
String line = "2017 Apr 04";
if (line.matches("[T]|[T\\+\\d{0,2}]")) {
System.out.println(line);
}
else
{
System.out.println("test");
}
この問題を解決するソリューションを使用する方がよいでしょう。それはここでSimpleDateFormat
ある例です。
package datevalidator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Main {
public static void main(String[] args) {
System.out.println(validateDate("2017 04 Apr"));
System.out.println(validateDate("Apr 04 2017"));
System.out.println(validateDate("2017 Apr 04"));
System.out.println(validateDate("04 Apr 2017"));
}
private static boolean validateDate(String date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy MMM dd");
try {
simpleDateFormat.parse(date);
} catch (ParseException e) {
return false;
}
return true;
}
}
それが印刷されます。それはまた、4月4日2017年を検証する
がfalse
false
true
true
注
は、なぜあなたはたDateFormatterを使用していませんか? – Flown
'SimpleDateFormat'を使い、適切な例外をキャッチしてください。 –
または[DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)を最新の状態にする必要があります。 – AxelH