java时间常用功能工具类
本类集成了常用的时间操作方法,包含:
1、将格式化字符串转换为日期
2、将日期转换为格式化的字符串
3、获取当前时间字符串
4、获取前一年或前一个月或前一天前一小时分钟的时间(支持按传入的不同时间类型生成不同的时间)
以下是时间操作工具类:
/**
* 日期通用功能
*/
public class DateUtil {
/**
* 将格式化字符串转换为日期
* @param strDate 日期格式的字符串
* @Param strFormat 日期格式,如:"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"
* @return 日期
* @throws ParseException
*/
public static Date parseToDate(String strDate,String strFormat) {
SimpleDateFormat format = new SimpleDateFormat(strFormat);
Date date = null;
try {
date = format.parse(strDate);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}
/**
* 将格式化字符串转换为日期
* @param strDate 日期格式的字符串
* @return 日期
* @throws ParseException
*/
public static Date parseToDate(String strDate) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(strDate);
} catch (ParseException e) {
throw new RuntimeException(e);
}
return date;
}
/**
*
* @param date 日期
* @param strFormat 日期格式,如:"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"
* @return 日期格式的字符串
*/
public static String parseToString(Date date,String strFormat){
SimpleDateFormat format = new SimpleDateFormat(strFormat);
try{
String strDate = format.format(date);
return strDate;
}
catch (Exception e){
throw e;
}
}
/**
*
* @param date 日期
* @return 日期格式的字符串
*/
public static String parseToString(Date date){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try{
String strDate = format.format(date);
return strDate;
}
catch (Exception e){
throw e;
}
}
/**
* 获取当前时间
* @return
*/
public static Date getNow() {
Date now = new Date();
String strFormat = "yyyy-MM-dd HH:mm:ss";
String strDate = parseToString(now,strFormat);
Date date = parseToDate(strDate, strFormat);
return date;
}
/**
* 获取当前时间
* @param strFormat
* @return
*/
public static Date getNow(String strFormat) {
Date now = new Date();
String strDate = parseToString(now,strFormat);
Date date = parseToDate(strDate, strFormat);
return date;
}
/**
* 获取当前日期
* @return
*/
public static String getNowString(String strFormat) {
Date now = new Date();
String strDate = parseToString(now,strFormat);
return strDate;
}
/**
* 获取当前日期
* @return
*/
public static String getNowDateString() {
Date now = new Date();
String strFormat = "yyyy-MM-dd";
String strDate = parseToString(now,strFormat);
return strDate;
}
/**
* 获取当前时间
* @return
*/
public static String getNowDateTimeString() {
Date now = new Date();
String strFormat = "yyyy-MM-dd HH:mm:ss";
String strDate = parseToString(now,strFormat);
return strDate;
}
/**
* 获取时间(前一小时/分钟/天/月/年)
* @param lDate 当前的时间
* @param dType 时间类型(支持年月日时分)
* @param num 向前或向后的数字
* @return
*/
public static Date getPreviousDate(Date lDate, DateTypeEnum dType, int num){
Calendar calendar = Calendar.getInstance();
calendar.setTime(lDate);
switch (dType) {
case DAY:
calendar.add(Calendar.DAY_OF_MONTH, num);
break;
case MONTH:
calendar.add(Calendar.MONTH, num);
break;
case YEAR:
calendar.add(Calendar.YEAR, num);
break;
case HOUR:
calendar.add(Calendar.HOUR_OF_DAY, num);
break;
case MIN:
calendar.add(Calendar.MINUTE, num);
break;
}
return calendar.getTime();
}
}
时间类型枚举类:
/**
* 时间类型
*/
public enum DateTypeEnum {
/*时间类型枚举*/
MIN("MI", "分钟"),
HOUR("H", "小时"),
DAY("D", "天"),
MONTH("M", "月"),
YEAR("Y", "年");
private String code;
private String name;
DateTypeEnum(String code,String name){
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public boolean equals(DateTypeEnum dateType) {
return getCode().equals(dateType.getCode());
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
浙公网安备 33010602011771号