/**
* 将字符串转换成yyyy/MM/dd或yyyy/MM/dd HH:mm:ss的格式
*
* @param strDate
* @return 10或19位日期格式的字符串
*/
static String dateValue(String strDate) {
StringBuffer dateValue = new StringBuffer();
if (strDate.length() == 8) {
dateValue.append(strDate.substring(0, 4)).append("/").append(
strDate.substring(4, 6)).append("/").append(
strDate.substring(6, 8));
} else if (strDate.length() == 10 && strDate.indexOf("-") >= 0) {
dateValue.append(strDate.replaceAll("-", "/"));
} else if (strDate.length() >= 19 && strDate.indexOf("-") >= 0) {
dateValue.append(strDate.substring(0, 19).replaceAll("-", "/"));
} else {
dateValue.append(strDate);
}
return dateValue.toString();
}
/**
* 将字符串转换成日期
*
* @param strDate 日期字符串
* @return 14位的日期格式
*/
private static String dateFormat(String strDate) {
strDate = dateValue(strDate);
DateFormat format14 = new SimpleDateFormat("yyyyMMddHHmmss");
DateFormat format19 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
DateFormat format10 = new SimpleDateFormat("yyyy/MM/dd");
// 防止日期的进位计算
format19.setLenient(false);
format10.setLenient(false);
Date date = null;
try {
if(strDate.length() != 14){
if (strDate.length() == 10) {
date = format10.parse(strDate);
} else if (strDate.length() == 19) {
date = format19.parse(strDate);
}
strDate = format14.format(date);
}
} catch (ParseException e) {
// 非正确的日期的场合
return null;
}
return strDate;
}