DateUtil 时间处理工具


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;


public class DateUtil {


    public static final String YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";


    /**
     * <P>Description:  在指定日期增加指定天数</P>
     *
     * @param date 日期
     * @param days 天数
     **/
    public static Date addDay(Date date, int days) {
        if (days == 0) {
            return date;
        }
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DAY_OF_YEAR, days);
        return c.getTime();
    }


    /**
     * <P>Description:  获取当前String时间 </P>
     *
     **/
    public static String getNow() {
        SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSS);

        return df.format(new Date());
    }

    /**
     * <P>Description:  计算两个时间的分钟间隔</P>
     *
     * @param c 起始时间
     * @param e 结束时间
     **/
    public static long getMinuteInterval(String c, String e) throws ParseException {

        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //转换为Date类
        Long timestamp_c=format.parse(c).getTime();
        Long timestamp_e=format.parse(e).getTime();


        long min = (timestamp_e - timestamp_c) / 1000 / 60;
        return min;

    }

    /**
     * <P>Description:  计算两个时间的秒间隔</P>
     *
     * @param c 起始时间
     * @param e 结束时间
     **/
    public static long getSecondBetween(Date c, Date e) throws ParseException {


        Calendar start = Calendar.getInstance();
        start.setTime(c);
        Calendar end = Calendar.getInstance();
        end.setTime(e);

        int secondCount =
                (int) ((end.getTimeInMillis() - start.getTimeInMillis() + 60 * 1000) / 60 / 1000) - 1;

        return secondCount;
    }

    /**
     * <P>Description:  获取时间戳</P>
     *
     * @param t String类型时间
     **/
    public static long getTimeStamp(String t) throws ParseException {

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYYMMDDHHMMSS);
        Date date = simpleDateFormat.parse(t);
        return date.getTime();
    }


    /**
     *
     * <P>Description:  获取时间戳</P>
     **/
    public static long getTimeStamp() {

        return Calendar.getInstance().getTimeInMillis();

    }


    /**
     *
     * <P>Description:  计算两个时间戳差值</P>
     *
     * @param  c
     * @param  e
     **/
    public static long getTimeStampBetween(long c, long e) {

        return e - c;

    }


    /**
     * <P>Description:  格式化时间:将日期字符串转成要求格式的日期</P>
     *
     * @param dateStr 日期字符串
     * @param pattern 格式
     **/
    public static Date formatStringToDate(String dateStr, String pattern) {
        SimpleDateFormat df = new SimpleDateFormat(pattern);
        try {
            return df.parse(dateStr);
        } catch (ParseException e) {
        }
        return null;
    }

    /**
     * <P>Description:  计算两个时间的间隔</P>
     *
     * @param c    起始时间
     * @param e    结束时间
     * @param item 类型
     **/
    private static Long getInterval(String c, String e, String item) throws ParseException {

        SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSS);
        Date createT = df.parse(c);
        Date endT = df.parse(e);

        long l = endT.getTime() - createT.getTime();
        long day = l / (24 * 60 * 60 * 1000);
        long hour = (l / (60 * 60 * 1000) - day * 24);
        long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
        long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);

        if ("day".equals(item)) {
            return day;
        } else if ("hour".equals(item)) {
            return hour;
        } else if ("min".equals(item)) {
            return min;
        } else if ("s".equals(item)) {
            return s;
        } else {
            return l;
        }
    }


    /**
     * <P>Description:  判断时间是否大于现在 </P>
     *
     * @param time 要比较的时间 格式 yyyy-MM-dd HH:mm:ss
     * @return boolean true指定时间大于现在时间 false指定时间小于现在时间
     **/
    public static boolean timeCompare(String time) {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern(YYYYMMDDHHMMSS);
        LocalTime localTime = LocalTime.parse(time, dtf);
        return LocalTime.now().isAfter(localTime);
    }


    /**
     *
     * <P>Description:  Date类型 转换成任意格式的 String类型</P>
     *
     * @param  date 时间
     * @param  format  格式
     **/
    public static String dateTransString(Date date, String format) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);

        return formatter.format(date);
    }

}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容