DateTimeFormatter Aceptar múltiples fechas y convertir a una (biblioteca java.time)
Estoy tratando de escribir unDateTimeFormatter
eso me permitirá tomar múltiples diferentesString
formatos, y luego convertir elString
formatos a un tipo específico. Debido al alcance del proyecto y al código que ya existe, no puedo usar un tipo diferente de formateador.
Por ejemplo, quiero aceptarMM/dd/yyyy
tanto comoyyyy-MM-dd'T'HH:mm:ss
pero cuando imprimo solo quiero imprimir enMM/dd/yyyy
formatear y tenerlo en el formato cuando llamoLocalDate.format(formatter);
¿Podría alguien sugerir ideas sobre cómo hacer esto con eljava.time.format.*;
Así es como podría hacerlo enorg.joda
:
// MM/dd/yyyy format
DateTimeFormatter monthDayYear = DateTimeFormat.forPattern("MM/dd/yyyy");
// array of parsers, with all possible input patterns
DateTimeParser[] parsers = {
// parser for MM/dd/yyyy format
monthDayYear.getParser(),
// parser for yyyy-MM-dd'T'HH:mm:ss format
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss").getParser()
};
DateTimeFormatter parser = new DateTimeFormatterBuilder()
// use the monthDayYear formatter for output (monthDayYear.getPrinter())
// and parsers array for input (parsers)
.append(monthDayYear.getPrinter(), parsers)
// create formatter (using UTC to avoid DST problems)
.toFormatter()
.withZone(DateTimeZone.UTC);
No he encontrado un buen ejemplo de esto en línea.