應用場景:在我之前有一次寫Excel導入的時候,由於Excel中的單元格格式問題,用戶可能會輸入多種不同格式的日期格式,項目經理要求能解析多種常用的時間格式
實現的代碼:
/**
* @param inputDate 要解析的字符串
* @return 解析出來的日期,如果沒有匹配的返回null
*/
public static Date parseDate(String inputDate) {
//可能出現的時間格式
String[] patterns = {
"yyyy-MM-dd HH:mm:ss",
"yyyy-MM-dd HH:mm",
"yyyy/MM/dd HH:mm:ss",
"yyyy/MM/dd HH:mm",
"yyyy年MM月dd日",
"yyyy-MM-dd",
"yyyy/MM/dd",
"yyyyMMdd"
};
SimpleDateFormat df = new SimpleDateFormat();
for (String pattern : patterns) {
df.applyPattern(pattern);
df.setLenient(false);//設置解析日期格式是否嚴格解析日期
ParsePosition pos = new ParsePosition(0);
Date date = df.parse(inputDate, pos);
if (date != null) {
return date;
}
}
return null;
}