Usando a API Joda Date & Time para analisar vários formatos
Estou analisando arquivos de log de terceiros que contêm data / hora usando o Joda. A data / hora está em um de dois formatos diferentes, dependendo da idade dos arquivos de log que estou analisando.
Atualmente eu tenho 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);
}
Isso funciona, mas contraria o conselho de Joshua Bloch da Effective Java 2nd Edition (Item 57: Use exceções apenas para condições excepcionais). Também torna difícil determinar se ocorre uma IllegalArgumentException devido a uma data / hora incorreta em um arquivo de log.
Você pode sugerir uma abordagem mais agradável que não use exceções?