java解析多种时间格式
应用场景:在我之前有一次写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;
}