工具类DateUtil 用于时间格式装换 去杠 去空格 转8位,转16位

package com.topinfo.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.util.StringUtils;
/**
*
*@Description:日期格式转换工具类
*/
public class DateUtil {

/**
* @Description: 日期字符串去掉连字符-
* @param dateParam 形如:2015-04-22
* @return 形如: 20150422
*/
public static String minusHyphen(String dateParam){
if(dateParam ==null) return null;
if(dateParam.indexOf("-") >-1){
dateParam = dateParam.replace("-", "");
}
return dateParam;
}


/**
*
*@Description: 讲一个日期对象转换成 形如: 形如: 20150422 的字符串
*@param dateParam Date 对象
*@return
*/
public static String minusHyphen(Date dateParam){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = sdf.format(dateParam);
return minusHyphen(strDate);
}


/**
*
*@Description: 讲一个日期对象转换成 形如: 形如: 20150422102530 的字符串
*@param dateParam Date 对象
*@return
*/
public static String minusHyphenColon(Date dateParam){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(dateParam);
return minusHyphenColon(strDate);
}



/**
* @Description: 日期字符串去掉连字符-和:
* @param datetimeParam 形如: 2015-04-22 10:25:30
* @return 形如: 20150422102530
*/
public static String minusHyphenColon(String datetimeParam){
if(datetimeParam ==null) return null;
if(datetimeParam.indexOf("-") >-1){
datetimeParam = datetimeParam.replace("-", "");
}
if(datetimeParam.indexOf(":") >-1){
datetimeParam = datetimeParam.replace(":", "");
}
if(datetimeParam.indexOf(" ") >-1){
datetimeParam = datetimeParam.replace(" ", "");
}
return datetimeParam;
}

/**
* @Description: 日期字符串添加连字符-
* @param dateParam 形如: 20150422
* @return 形如:2015-04-22
*/
public static String addHyphen(String param){
if(param ==null) return null;
if(StringUtils.hasText(param) && param.length() == 8){
param =new StringBuffer(100).append(param.substring(0, 4)).append("-")
.append(param.substring(4, 6)).append("-").append(param.substring(6, 8)).toString();
}
return param;
}

/**
* @Description: 日期字符串添加连字符-
* @param param 形如: 20150422102530
* @return 形如: 2015-04-22 10:25:30
*/
public static String addHyphenColon(String param){
if(param ==null) return null;
if(StringUtils.hasText(param) && param.length() == 14){
param =new StringBuffer(100).append(param.substring(0, 4)).append("-")
.append(param.substring(4, 6)).append("-").append(param.substring(6, 8))
.append(" ").append(param.substring(8, 10)).append(":")
.append(param.substring(10,12)).append(":").append(param.substring(12, 14))
.toString();
}
return param;
}

/**
*
*@Description: 将 20150422 转换成 2015年04月22日
*@param dateStr 从数据库中读取的日期串 形如 20150422
*@return
*/
public static String dateStringFormat(String dateStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat otherSdf = new SimpleDateFormat("yyyy年MM月dd日");
try {
Date date = sdf.parse(dateStr);
return otherSdf.format(date);
} catch (ParseException e) {
e.printStackTrace();
return dateStr;
}
}

/**
*
*@Description: 将 20150422102530 转换成 2015年04月22日 10:25:30
*@param dateStr 从数据库中读取的日期串 形如 20150422
*@return
*/
public static String timeStringFormat(String dateStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat otherSdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
try {
Date date = sdf.parse(dateStr);
return otherSdf.format(date);
} catch (ParseException e) {
e.printStackTrace();
return dateStr;
}
}


/**
*
*@Description: 将 形如 20150422102530 或者 20150422 或者 2015-04-22 10:25:30 或者 2015-04-22 转换成 2015年04月22日
*@param dateStr 从数据库中读取的日期串 形如 20150422
*@return
*/
public static String timeStringFormatToChineseDate(String dateStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
if(dateStr.contains(":")){ //说明是带时分秒的
dateStr = minusHyphenColon(dateStr); //去掉短线“-”和“:”
}
if(dateStr.contains("-")){ //如果还有短线 说明是 不带时分秒的
dateStr = minusHyphen(dateStr);
}

if(dateStr.length() >8){
sdf = new SimpleDateFormat("yyyyMMddHHmmss");
}

SimpleDateFormat otherSdf = new SimpleDateFormat("yyyy年MM月dd日");
try {
Date date = sdf.parse(dateStr);
return otherSdf.format(date);
} catch (ParseException e) {
e.printStackTrace();
return dateStr;
}
}

/**
*
*@Description: 将一个20170802的字符串转换成Date 对象
*@param dateString 形如 20170802
*@return java.util.Date 对象
*/
public static Date dateStringToDateObject(String dateString){
if(dateString != null && StringUtils.hasText(dateString)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try {
return sdf.parse(dateString.trim());
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}

/**
*
*@Description: 将一个20170802143030的字符串转换成Date 对象
*@param timeString 形如 20170802143030
*@return java.util.Date 对象
*/
public static Date timeStringToTimeObject(String timeString){
if(timeString != null && StringUtils.hasText(timeString)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
try {
return sdf.parse(timeString.trim());
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}



public static void main(String[] args) {
String val = DateUtil.minusHyphen("2015-04-22");
System.out.println("val: " + val);

String v2 = DateUtil.addHyphen("20150422");
System.out.println("v2: " + v2);

String v3 = DateUtil.addHyphenColon("20150422102530");
System.out.println("v3: " + v3);

String v4 = DateUtil.minusHyphenColon("2015-04-22 10:25:30");
System.out.println("v4: " + v4);


System.out.println("DateUtil.dateStringFormat="+DateUtil.dateStringFormat("20150422"));

System.out.println("DateUtil.timeStringFormat="+DateUtil.timeStringFormat("20150422102530"));
}

 

}

posted @ 2018-08-01 16:38  .Concise  阅读(374)  评论(0编辑  收藏  举报