code: private static ImmutableList<DateTimeFormatter> buildDefaultDateTimeFormatter() {
  
          return ImmutableList.<DateTimeFormatter>builder()
                      .add(DateTimeFormatter.ISO_LOCAL_DATE_TIME) // ISO with 'T'
                      .add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[[.SSSSSSSSS][.SSSSSSS][.SSSSSS][.SSS][.SS][.S][XXXXX][XXXX][x]")) // ISO without 'T'
  //               new DateTimeFormatterBuilder().parseLenient().appendPattern("yyyy-MM-dd HH:mm:ss[XXXXX][XXXX][x]").appendFraction(ChronoField.MICRO_OF_SECOND, 0, 9, true)
                      .add(DateTimeFormatter.ISO_DATE) // ISO with or without time
                      .add(new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("dd-MMM-yy[ HH:mm:ss]").toFormatter()) // another common case
                      .build();
      }
docs: default possible date time format