fork download
  1. import java.time.LocalDateTime;
  2. import java.time.format.DateTimeFormatter;
  3. import java.time.format.DateTimeFormatterBuilder;
  4. import java.time.temporal.ChronoField;
  5. import java.util.Locale;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9. DateTimeFormatter dateFormatter = new DateTimeFormatterBuilder()
  10. .parseCaseInsensitive()
  11. .appendPattern("[MM/dd/uuuu hh:mm:ss a][MM/dd/uuuu HH[:mm[:ss]]][uuuuMMdd[ hh:mm:ss a]")
  12. .parseDefaulting(ChronoField.CLOCK_HOUR_OF_AMPM, 0)
  13. .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
  14. .toFormatter(Locale.ENGLISH);
  15.  
  16. // Test
  17. String[] arr = { "08/25/2021 10:20:30 am", "08/25/2021 10:20:30", "08/25/2021 10:20", "20210825" };
  18.  
  19. for (String s : arr) {
  20. LocalDateTime ldt = LocalDateTime.parse(s, dateFormatter);
  21. System.out.println(ldt);
  22. }
  23. }
  24. }
  25.  
Success #stdin #stdout 0.13s 52144KB
stdin
Standard input is empty
stdout
2021-08-25T10:20:30
2021-08-25T10:20:30
2021-08-25T10:20
2021-08-25T00:00