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;
    }
}

  

posted @ 2025-05-14 14:24  microsoft_xin  阅读(79)  评论(0)    收藏  举报