Usando Joda Date & Time API para analizar múltiples formatos
Estoy analizando archivos de registro de terceros que contienen fecha / hora usando Joda. La fecha / hora está en uno de dos formatos diferentes, dependiendo de la antigüedad de los archivos de registro que estoy analizando.
Actualmente tengo un código como este:
try {
return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart);
} catch (IllegalArgumentException e) {
return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart);
}
Esto funciona pero contraviene el consejo de Joshua Bloch de Effective Java 2nd Edition (Artículo 57: Use excepciones solo para condiciones excepcionales). También dificulta determinar si se produce una IllegalArgumentException debido a una fecha / hora arruinada en un archivo de registro.
¿Puedes sugerir un enfoque más agradable que no haga mal uso de las excepciones?