目录
在项目中,经常遇到读取excel数据的需求,excel中通常都包含有日期这一项内容。而日期格式不一,常见的有“2021年12月12日"、“2021-11-11”、“2021/11/22”这3种格式。这里提供一个公共方法,将日期格式化为“yyyy-MM-dd"标准格式:
(1)功能实现
/**
* 解析日期字符串
* 描述:格式化日期字符串dateStr为yyyy-MM-dd形式
* 如果格式化失败,则日期格式有误
*
* @param dateStr 日期字符串
* @return
*/
public static String parseYearMonthDayDate(String dateStr) {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy/MM/dd");
String yearMonthDay = null;
Date date = null;
try {
date = sdf1.parse(dateStr);
yearMonthDay = sdf1.format(date);
} catch (ParseException e1) {
try {
date = sdf2.parse(dateStr);
yearMonthDay = sdf1.format(date);
} catch (ParseException e2) {
try {
date = sdf3.parse(dateStr);
yearMonthDay = sdf1.format(date);
} catch (ParseException e3) {
throw new Exception("日期有误");
}
}
} catch (NullPointerException e) {
throw new Exception("日期为空");
}
return yearMonthDay;
}
本方法利用异常执行机制实现日期的格式化。
(2)功能测试
public static void main(String[] args){
String s = parseYearMonthDayDate("2021年7月7日");
//"2021年7月7日" 或 "2021年07月07日"都可以解析为标准格式
String s2 = parseYearMonthDayDate("2021/7/7");
String s3 = parseYearMonthDayDate("2021-7-7");
System.out.println(s);
System.out.println(s2);
System.out.println(s3);
}