fork download
  1. import java.time.*;
  2. import java.time.format.DateTimeFormatter;
  3. import java.time.format.DateTimeFormatterBuilder;
  4. import java.time.temporal.ChronoField;
  5. import java.util.HashMap;
  6. import java.util.Locale;
  7. import java.util.Map;
  8.  
  9. public class Main {
  10. public static void main(String[] args) {
  11. Map<Long, String> shortMonthNameMap = new HashMap<>();
  12. shortMonthNameMap.put(1L, "Jan.");
  13. shortMonthNameMap.put(2L, "Feb.");
  14. shortMonthNameMap.put(3L, "März");
  15. // Similarly, put the remaining months of the year into shortMonthNameMap
  16.  
  17. Map<Long, String> longMonthNameMap = new HashMap<>();
  18. longMonthNameMap.put(1L, "Januar");
  19. longMonthNameMap.put(2L, "Februar");
  20. longMonthNameMap.put(3L, "März");
  21. // Similarly, put the remaining months of the year into longMonthNameMap
  22.  
  23. DateTimeFormatter fmt = new DateTimeFormatterBuilder()
  24. .appendPattern("d. ")
  25. .optionalStart()
  26. .appendText(ChronoField.MONTH_OF_YEAR, shortMonthNameMap)
  27. .optionalEnd()
  28. .optionalStart()
  29. .appendText(ChronoField.MONTH_OF_YEAR, longMonthNameMap)
  30. .optionalEnd()
  31. .appendPattern(" HH:mm")
  32. .parseDefaulting(ChronoField.YEAR, Year.now().getValue())
  33. .toFormatter(Locale.GERMAN);
  34.  
  35. System.out.println(LocalDateTime.parse("10. Jan. 18:14", fmt));
  36. System.out.println(LocalDateTime.parse("10. Januar 18:14", fmt));
  37. System.out.println(LocalDateTime.parse("8. Feb. 19:02", fmt));
  38. }
  39. }
Success #stdin #stdout 0.14s 55268KB
stdin
Standard input is empty
stdout
2025-01-10T18:14
2025-01-10T18:14
2025-02-08T19:02