Java实用DateUtils工具类

 实用日期工具类,有需要可以直接摘

/**
 * @author chx
 * @description cn.gov.cwl.vlt.utils
 * @date 2019/10/24
 */
public class DateUtils {

    private static final DateTimeFormatter SF_DATE = DateTimeFormat.forPattern("yyyy-MM-dd");

    private static final DateTimeFormatter SF_DATE_TIME = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");


    /**
     * 获取当天日期字符串
     *
     * @return yyyy-MM-dd
     */
    public static String getDateString() {
        return SF_DATE.print(System.currentTimeMillis());
    }

    /**
     * 获取当天日期+时分秒字符串
     *
     * @return yyyy-MM-dd
     */
    public static String getDateTimeString() {
        return SF_DATE_TIME.print(System.currentTimeMillis());
    }

    /**
     * 根据日期字符串和时间字符串返回Date类型
     * @param dateString yyyy-MM-dd
     * @param  timeString
     * @return HH:mm:ss
     */
    public static Date transformDate(String dateString,String timeString){
        String s = dateString + " " + timeString;
        Date date = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        try {
            date = sdf.parse(s);
        } catch (ParseException e) {
            throw new RuntimeException("时间格式不正确,需要组合成yyyy-MM-dd HH:mm 格式");
        }
        return date;
    }

    /**
     * 根据日期字符串返回Date类型
     * @param dateString yyyy-MM-dd
     * @return Date
     */
    public static Date stringTransformDate(String dateString){
        if (StringUtils.isBlank(dateString)){
            return null;
        }
        DateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //加上时间
        //必须捕获异常
        Date date= null;
        try {
             date = sDateFormat.parse(dateString);
            System.out.println(date);
        } catch(ParseException px) {
            throw new RuntimeException("时间格式不正确,需要组合成yyyy-MM-dd HH:mm:ss 格式");
        }
        return date;
    }

    /**
     * 日期转字符串
     *
     * @return yyyy-MM-dd
     */
    public static String getDateToString(Date dateDate) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(dateDate);
        return dateString;
    }

    /**
     * 小时转天(单位转换)
     * @param hourFrom
     * @return
     */
    public static String hourParseDay(Integer hourFrom){
        if (hourFrom == null){
            return "0小时";
        }
        Integer day = null;
        Integer hour = null;
        day = hourFrom/24;
        hour = hourFrom%24;
        if (day == null || day == 0){
            return hour + "小时";
        }else {
            if (hour == null){
                return day + "天";
            }
            return day + "天" + hour + "小时";
        }
    }

    /**
     * 分钟转天(单位转换)
     * @param minuteFrom
     * @return
     */
    public static String minuteParseDay(Integer minuteFrom){
        if (minuteFrom == null || minuteFrom == 0){
            return "0分钟";
        }
        int hours = (int) Math.floor(minuteFrom / 60);
        int day = hours / 24;
        if (hours >= 24){
            hours = hours - day*24;
        }
        int minute = minuteFrom % 60;
        if (minuteFrom < 60){
            return minute + "分钟";
        }else if (minuteFrom < 1440){
            return hours + "小时" + minute + "分钟";
        }else {
            return (day + "天" + hours + "小时" + minute + "分钟");
        }
    }

    /**
     * 根据入参(单位:分钟)获取触发方法时刻起,算minuteFrom分钟前的时间
     * @param minuteFrom
     * @return
     */
    public static Date getBeforeTime(Integer minuteFrom){
        if (minuteFrom == null){
            return null;
        }
        Calendar nowBefore = Calendar.getInstance();
        Integer beforeTime = -minuteFrom;
        nowBefore.add(Calendar.MINUTE, beforeTime);
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date time = nowBefore.getTime();
        return time;
    }

    /**
     * 获取两个时间相差多少分钟
     * @param mixTime
     * @param minTime
     * @return
     */
    public static long getTwoTimeDifferMinute(Date mixTime,Date minTime){
        if (mixTime == null || minTime == null){
            throw new RuntimeException("入参的时间不能为null");
        }
        // 计算相差多少分钟
        long nm = 1000 * 60;
        // 获得两个时间的毫秒时间差异
        long diff = mixTime.getTime() - minTime.getTime();
        long residue = diff/nm;
        return residue;
    }
}

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值