la búsqueda de un método que toma una lista de fechas (de tipo cadena) como entradas y devuelve posibles formatos de fecha.
por ejemplo: de entrada es [ "01/02/2018", "13/09/2018", "08/11/2016"] entonces la salida debe ser "dd / MM / aaaa".
este es uno de los ejemplo. debería ser capaz de devolver todos los formatos de fecha compatibles con Java que mejor se adapte para la entrada dada.
No creo que un procedimiento de este tipo es fácilmente disponible. Usted tendrá que codificar por sí mismo.
Es posible, aunque no siempre es posible dar una respuesta única.
Requerir exactamente tres números en la cadena y los mismos separadores antes, entre y después de los números de cada cadena. Recoger el primer, el segundo y el tercer número de cada cadena. Encontrar el mínimo y el máximo de cada uno. Estoy tomando el ejemplo:
[ "01/02/2018", "13/9/2018", "08/11/2016"]
- En primer número ha min 1 y max 13
- Segundo número Har min 2 y max 11
- Tercer número ha min 2016 y max 2018
El año es fácil, que es el número mínimo y máximo, donde se encuentran, por ejemplo, de 1900 hasta 2100. Elija límites que se adapten a su situación. Mes es el número que no pasa por encima de 12. En el ejemplo, el segundo número es el mes transcurrido desde la primera tiene un máximo de 13. Si ninguno de los números no sube por encima de 12 años, no se puede decidir y necesitarán lanzar una excepción o similares. Una vez que haya decidido el año y el mes, el número no ha utilizado, es el día del mes. Compruebe que está dentro de 1 a 31 para su validación.
Para el día y mes: Si hay una ocurrencia con un cero ( 01
y 02
en su ejemplo) y todas las ocurrencias tener dos dígitos, requieren de dos dígitos en el formato, utilizando dd
o MM
. De lo contrario usar d
o M
(que imprimirá suficientes dígitos para el número y analizará tanto un dígito y la entrada de dos dígitos). Debido a que en su ejemplo mes se da como 9
(un dígito, en la segunda cadena) y 8
como el día, el uso d
y M
.
Resultado final: d/M/uuuu
o d/M/yyyy
.
Feliz de codificación.