使用 Joda 日期和时间 API 解析多种格式
我正在使用Joda解析包含日期/时间的第三方日志文件。日期/时间采用两种不同格式之一,具体取决于我正在解析的日志文件的期限。
目前我有这样的代码:
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);
}
这有效,但违反了Joshua Bloch在 Effective Java 2nd Edition(第57项:仅在特殊情况下使用例外)的建议。这也使得很难确定非法参数异常是否由于日志文件中的错误日期/时间而发生。
您能建议一种不滥用异常的更好方法吗?