fork download
  1. import java.time.LocalDate;
  2. import java.time.ZoneId;
  3. import java.time.format.DateTimeFormatter;
  4. import java.time.format.DateTimeFormatterBuilder;
  5. import java.time.temporal.ChronoField;
  6. import java.util.Locale;
  7. import java.util.stream.Stream;
  8.  
  9. public class Main {
  10. public static void main(String[] args) {
  11. // Replace JVM's ZoneId, ZoneId.systemDefault() with the applicable one e.g.
  12. // ZoneId.of("Europe/Berlin")
  13. int defaultYear = LocalDate.now(ZoneId.systemDefault()).getYear();
  14.  
  15. DateTimeFormatter dtf = new DateTimeFormatterBuilder()
  16. .appendPattern("dd.MM[.[uuuu][uu]]")
  17. .parseDefaulting(ChronoField.YEAR, defaultYear)
  18. .toFormatter(Locale.ENGLISH);
  19.  
  20. // Test
  21. Stream.of(
  22. "12.11",
  23. "12.11.21",
  24. "12.11.2021"
  25. ).forEach(s -> System.out.println(LocalDate.parse(s, dtf)));
  26. }
  27. }
Success #stdin #stdout 0.12s 49924KB
stdin
Standard input is empty
stdout
2021-11-12
2021-11-12
2021-11-12