java时间处理工具

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_39150374/article/details/98183089

前言

时间类在项目中用的比较多,处理起来也比较麻烦,今天和大家分享我在项目中处理时间类的工具,主要是日期格式化成日期、日期格式化成字符串、字符串格式化成日期等方法。

工具类

package com.example.student.util;

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

/**
 * @Date 2019/8/2  10:46
 * @Desc 时间工具类
 */
public class DateUtil {
    public static final String YEAR = "yyyy-MM-dd";
    public static final long ONE_DAY = 24 * 60 * 60 * 1000L;
    public static final long MINUTE_TIME = 60000L;//1分钟
    public static final long HOUR_TIME = 60 * MINUTE_TIME;
    public static final String FULL_NO_SECOND = "yyyy-MM-dd HH:mm";


    /**
     * 时间格式转化成字符串
     *
     * @param date   时间
     * @param format 格式
     * @return 字符串
     */
    public static String dateToString(Date date, String format) {
        String strDate = null;
        if (date != null && format != null && !"".equals(format)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            strDate = sdf.format(date);
        }

        return strDate;
    }

    /**
     * 字符串格式转化成日期
     *
     * @param strDate 字符串
     * @param format  格式
     * @return 日期
     */
    public static Date stringToDate(String strDate, String format) {
        Date date = null;
        if (format != null && !"".equals(format)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);

            try {
                date = sdf.parse(strDate);
            } catch (Exception var5) {
                date = null;
            }
        }

        return date;
    }

    /**
     * 日期格式化成日期
     *
     * @param date   日期
     * @param format 格式化
     * @return 日期
     */
    public static Date dateToDate(Date date, String format) {
        if (format != null && !"".equals(format)) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            try {
                String strDate = sdf.format(date);
                date = sdf.parse(strDate);
            } catch (ParseException e) {
                date = null;
                e.printStackTrace();
            }
        }

        return date;
    }

    /**
     * 时间推移
     *
     * @param date 时间
     * @param day  推移的天数
     * @return 时间
     */
    public static Date datePass(Date date, Integer day) {
        if (date != null && day != null) {
            long result = date.getTime() + ONE_DAY * day;
            return new Date(result);
        }
        return date;
    }

    /**
     * 日期是否在今天之前
     *
     * @param date 日期
     * @return true/false
     */
    public static boolean isBeforeToday(Date date) {
        boolean flag = false;

        if (date != null && date.before(new Date())) {
            flag = true;
        }
        return flag;
    }

    /**
     * 日期是否是在今天内
     *
     * @param date 日期
     * @return true/false
     */
    public static boolean isInToday(Date date) {
        if (date == null) {
            return false;
        } else {
            boolean flag = false;
            Date now = new Date();
            String nowStr = dateToString(now, YEAR);
            String dateStr = dateToString(date, YEAR);
            if (nowStr.equals(dateStr)) {
                flag = true;
            }

            return flag;
        }
    }


    /**
     * 判断两个时间是否连续
     *
     * @param str1  晚一点的 2019-08-08 01:15
     * @param str2  早一点的 2019-08-08 01:00
     * @param space 是否连续的判断标准
     * @return true/false
     */
    public static Boolean isContinuous(String str1, String str2, long space) {
        if (str1 == null || "".equals(str1) || str2 == null || "".equals(str2)) {
            return false;
        }

        Date date1 = stringToDate(str1, FULL_NO_SECOND);
        Date date2 = stringToDate(str2, FULL_NO_SECOND);

        return Math.abs(date1.getTime() - date2.getTime()) == space;
    }


    //是否在1小时内
    public static Boolean isInHour(Date now) {
        Date dateBegin = dateToDate(now, YEAR);
        return now == null || now.getTime() - dateBegin.getTime() < HOUR_TIME;
    }
    
}

猜你喜欢

转载自blog.csdn.net/qq_39150374/article/details/98183089