废话不多说,贴代码
timeFormatHandling() 函数
/**将以下几种日期格式转为yyyy年mm月dd日
* 1. yyyy/mm/dd hh:mm:ss
* 2. yyyy/m/d h:mm:ss
* 3. yyyy/m/dd h:mm:ss
* 4. yyyymmdd
* 5. yyyy/mm/dd
* 6. yyyy/m/d
* 7. yyyy/m/dd
* 8.excel格式
* @param date 输入日期
* @return 返回转换后的格式*/
public static String timeFormatHandling(String date){
//System.out.println("输入的日期为:"+date);
if ("".equals(date) || date == null) return "时间为空";//处理空指针异常
if (date.length() < 5) return "时间格式错误";//输入了奇怪的东西,无法识别
if (date.charAt(4) == '年') return date;//如果输入的格式正确 直接返回
if (date.length() == 19 || date.length() == 10) return date.substring(0,4)+"年"+date.substring(5,7)+"月"+date.substring(8,10)+"日";
else if (date.length() == 17 || date.length() == 9 && date.charAt(4) == '/')return date.substring(0,4)+"年0"+date.charAt(5)+"月"+date.substring(7,9)+"日";
else if (date.length() == 16 || date.length() == 8 && date.charAt(4) == '/') return date.substring(0,4)+"年0"+date.charAt(5)+"月0"+date.charAt(7)+"日";
else if(date.length() == 8 && date.charAt(4) != '/')return date.substring(0,4)+"年"+date.substring(4,6)+"月"+date.substring(6)+"日";
else if(date.length() == 5)return digitalToDate(date);//excel格式
return "时间格式错误";//无法识别
}
digitalToDate()函数
/**将excel中的数字转为日期
* @param number excel中的数字
* @return 日期
* */
public static String digitalToDate(String number){
Calendar calendar = new GregorianCalendar(1900,0,-1);
int intDay = Integer.parseInt(number);
Date dd = DateUtils.addDays(calendar.getTime(),intDay);
//对日期格式化操作
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
return simpleDateFormat.format(dd);
}
输入 | 输出 |
yyyy/mm/dd hh:mm:ss | yyyy年mm月dd日 |
yyyy/m/d h:mm:ss | yyyy年0m月0d日 |
yyyy/m/dd h:mm:ss | yyyy年0m月dd日 |
yyyymmdd | yyyy年mm月dd日 |
yyyy/mm/dd | yyyy年mm月dd日 |
yyyy/m/d | yyyy年0m月0d日 |
excel格式 | yyyy年mm月dd日 |