Die Eingabezeichenfolge muss nicht in ein Datum konvertiert, sondern überprüft werden. Sie kann durch reguläre Regeln überprüft oder je nach Bedarf flexibel mit der Split-Methode von String kombiniert werden.
import java.util.regex.Pattern;
1. jjjj-MM-tt
public static void main(String[] args) {
String dateStr="2021-01-01";
System.out.println(Pattern.matches("^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|(1|2)[0-9]|30|31)$",dateStr));
}
2. Jahr JJJJ vier natürliche Zahlen
public static void main(String[] args) {
String dateStr="2021";
System.out.println(Pattern.matches("^\\d{4}$",dateStr));
}
3. Monat MM 01~09 | 10~12
public static void main(String[] args) {
String dateStr="01";
System.out.println(Pattern.matches("^(0[1-9]|1[0-2])$",dateStr));
}
4. Tag dd 01–09 | 10–19 | 20–29 | 30–31
public static void main(String[] args) {
String dateStr="01";
System.out.println(Pattern.matches("^(0[1-9]|(1|2)[0-9]|30|31)$",dateStr));
}
Fünf, Monat m 1 ~ 12
public static void main(String[] args) {
String dateStr="1";
System.out.println(Pattern.matches("^([1-9]|1[0-2])$",dateStr));
}
6. Tage 1 ~ 9 | 10 ~ 19 | 20 ~ 29 | 30 ~ 31
public static void main(String[] args) {
String dateStr="1";
System.out.println(Pattern.matches("^(([1-9])|((1|2)[0-9])|30|31)$",dateStr));
}
7. Monat MM 01~09 | 10~12 oder M 1~12
public static void main(String[] args) {
String dateStr="1";
System.out.println(Pattern.matches("^(0?[1-9]|1[0-2])$",dateStr));
}
8. Tag TT 01–09 | 10–19 | 20–29 | 30–31 oder Tag 1–9 | 10–19 | 20–29 | 30–31
public static void main(String[] args) {
String dateStr="1";
System.out.println(Pattern.matches("^((0?[1-9])|((1|2)[0-9])|30|31)$",dateStr));
}