以下是基於格式字符串將字符串轉換爲Joda datetime對象的代碼。Java Joda時間多個日期格式代碼優化
public Datetime ConvertDateTime(String dateStr) {
List<DateTimeFormatter> FORMATTERS =
Arrays.asList(
DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss.SSS a"),
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS"),
DateTimeFormat.forPattern("MM-dd-yyyy hh:mm:ss.SSS a"),
DateTimeFormat.forPattern("MM dd yyyy hh:mm:ss.SSS a"),
DateTimeFormat.forPattern("MM-dd-yyyy hh.mm.ss.SSS a"));
if (dateStr != null) {
for (DateTimeFormatter formatter : FORMATTERS) {
try {
DateTime dt = formatter.parseDateTime(dateStr);
return dt;
} catch (IllegalArgumentException e) {
// Go on to the next format
}
}
}
return null;
}
此代碼提供我所希望的結果,但使用異常作爲控制流不是一個好的design.Please優化代碼。
我喜歡這個代碼:) –
在這個API美中不足的是OK。將FORMATTERS移到方法(如字段)和靜態final之外。 –