DateUtils

Date工具类

package com.sxf.oms.web.common;

import org.apache.commons.lang3.StringUtils;

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

public class DateUtils {

    public static String format(Date d, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(d);
    }

    public static String getYmdDate() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String retStr = sdf.format(new Date());
        return retStr;
    }

    public static String getHmsTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("HHmmss");
        String retStr = sdf.format(new Date());
        return retStr;
    }

    public static String getYmdHmsDate() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String retStr = sdf.format(new Date());
        return retStr;
    }

    public static String getStringData(String dataFormat) {
        SimpleDateFormat sdf = new SimpleDateFormat(dataFormat);
        String retStr = sdf.format(new Date());
        return retStr;
    }

    public static Date addHourOfDay(Date date, int delta) {
        final Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.HOUR_OF_DAY, delta);
        return c.getTime();
    }

    public static Date addHourOfDay(int delta) {
        final Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.HOUR_OF_DAY, delta);
        return c.getTime();
    }

    public static String addMinute(String date, String n) {
        SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHHmmss");

        Date d;
        try {
            d = s.parse(date);
            final Calendar c = Calendar.getInstance();
            c.setTime(d);
            c.add(Calendar.MINUTE, Integer.parseInt(n));
            return s.format(c.getTime());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    public static Date addMinute(Date date, int delta) {
        final Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.MINUTE, delta);
        return c.getTime();
    }

    public static Date addMinute(int delta) {
        final Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.MINUTE, delta);
        return c.getTime();
    }

    public static String formatDt(String dt) {
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
        try {
            Date d = sf.parse(dt);
            SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd");
            return sf2.format(d);
        } catch (ParseException e) {
            e.printStackTrace();
            return dt;
        }
    }

    public static String formatDtms(String dt) {
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
        try {
            Date d = sf.parse(dt);
            SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sf2.format(d);
        } catch (ParseException e) {
            e.printStackTrace();
            return dt;
        }
    }

    public static String formatYmd(String str) throws ParseException {
        Date parse=new SimpleDateFormat("yyyy-MM-dd").parse(str);
        String dateString = new SimpleDateFormat("yyyyMMdd").format(parse);
        return dateString;
    }

    public static String formatYmd2(String str){
        Date parse;
        String dateString="";
        try {
            parse = new SimpleDateFormat("yyyy-MM-dd").parse(str);
            dateString = new SimpleDateFormat("yyyyMMdd").format(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateString;
    }

    public static String formatTm(String tm) {
        SimpleDateFormat sf = new SimpleDateFormat("HHmmss");
        try {
            Date d = sf.parse(tm);
            SimpleDateFormat sf2 = new SimpleDateFormat("HH:mm:ss");
            return sf2.format(d);
        } catch (ParseException e) {
            e.printStackTrace();
            return tm;
        }
    }
    public static String formatDtTm(String dt) {
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
        try {
            Date d = sf.parse(dt);
            SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sf2.format(d);
        } catch (ParseException e) {
            e.printStackTrace();
            return dt;
        }
    }

    public static String addCycleAfterNow(String preFixTime, String cycle) {
        SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHHmmss");
        try {
            Date d = s.parse(preFixTime);
            Date n = new Date();
            long next = n.getTime() / 1000
                    + (60 * 60L - (n.getTime() / 1000 - d.getTime() / 1000) % 3600);
            System.out.println(next * 1000);
            String nextPreFixTime = s.format(new Date(next * 1000));
            return nextPreFixTime;
        } catch (ParseException e) {
            return getYmdHmsDate();
        }
    }

    /**
    * @Title: getMonthAftern
    * @Description: 获取n月后的日期
    * @param @param n
    * @param @return
    * @return Date
    * @throws
    */
    public static Date getMonthAfternDate(int n) {
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.add(Calendar.MONTH, n);
        return startCalendar.getTime();
    }

    /**
    * @Title: getMonthAftern
    * @Description: 获取n月后的月份
    * @param @param n
    * @param @return
    * @return String
    * @throws
    */
    public static String getMonthAfternStr(int n) {
        return format(getMonthAfternDate(n), "yyyyMM");
    }

    /**
     * 判断超过今天为有效期内  有效期内返回true
     * @param dateStr
     * @return
     */
    public static boolean checkInviteDate(String dateStr) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        if (StringUtils.isEmpty(dateStr)) {
            return false;
        }
        try {
            Date date = sdf.parse(dateStr);
            Date today = new Date();
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(today);
            calendar.add(Calendar.DAY_OF_MONTH, -1);
            Date myDate = calendar.getTime();
            if (date.after(myDate)) {
                return true; //有效期内返回true
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return false;
    }

    public static String plusDate(String ymd, int dayNum) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        try {
            Date date = sdf.parse(ymd);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.DAY_OF_MONTH, dayNum);
            Date newDate = calendar.getTime();
            return sdf.format(newDate);
        } catch (Exception e) {
            return ymd;
        }
    }



    /**
     * 计算两个日期差了多少天
     */

    public static Long getDatePoorDay(String endDateStr, String nowDateStr) {
        long nd = 1000 * 24 * 60 * 60L;
        long nh = 1000 * 60 * 60L;
        long nm = 1000 * 60L;
        // long ns = 1000;
        // 获得两个时间的毫秒时间差异
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        long diff = 0;
        try {
            diff = format.parse(endDateStr).getTime() - format.parse(nowDateStr).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 计算差多少天
        return diff / nd;
        // 计算差多少小时
        //long hour = diff % nd / nh;
        // 计算差多少分钟
        //long min = diff % nd % nh / nm;
        // 计算差多少秒//输出结果
        // long sec = diff % nd % nh % nm / ns;
        // return String.valueOf(day);
    }

    public static int getMonthDiff(Date d1, Date d2) {
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(d1);
        c2.setTime(d2);
        int year1 = c1.get(Calendar.YEAR);
        int year2 = c2.get(Calendar.YEAR);
        int month1 = c1.get(Calendar.MONTH);
        int month2 = c2.get(Calendar.MONTH);
        int day1 = c1.get(Calendar.DAY_OF_MONTH);
        int day2 = c2.get(Calendar.DAY_OF_MONTH);
        // 获取年的差值
        int yearInterval = year1 - year2;
        // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
        if (month1 < month2 || month1 == month2 && day1 < day2) {
            yearInterval--;
        }
        // 获取月数差值
        int monthInterval = (month1 + 12) - month2;
        if (day1 < day2) {
            monthInterval--;
        }
        monthInterval %= 12;
        int monthsDiff = Math.abs(yearInterval * 12 + monthInterval);
        return monthsDiff;
    }

    /**
     * 获取上个月的日期
     * @param d
     * @return
     * @throws ParseException
     */
    public static String getMonthOfYearLastMonth(Date d) {
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        Calendar ca = Calendar.getInstance();
        ca.setTime(d);
        ca.add(Calendar.MONTH, -1);
        d = ca.getTime();
        String enddate = format.format(d);
        return enddate;
    }

    /**
     * 获取日期的前一天日期
     * @param d
     * @return
     * @throws ParseException
     */
    public static String getMonthOfYearNextDay(Date d) {
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        Calendar ca = Calendar.getInstance();
        ca.setTime(d);
        ca.add(Calendar.DATE, -1);
        d = ca.getTime();
        String enddate = format.format(d);
        return enddate;
    }

    /**
     * 获取当前日期的当月最后一天
     * @return
     */
    public static String getDayOfMonthLastDay(String date) throws ParseException {
        SimpleDateFormat s = new SimpleDateFormat("yyyyMMdd");
        Calendar c = Calendar.getInstance();
        c.setTime(s.parse(date));
        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        return s.format(c.getTime());
    }

    public static String getLastDayOfMonth(String date) {
        SimpleDateFormat format1 = new SimpleDateFormat("yyyyMM");
        SimpleDateFormat format2 = new SimpleDateFormat("yyyyMMdd");
        Calendar cDay1 = Calendar.getInstance();
        try {
            cDay1.setTime(format1.parse(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);
        Date lastDate = cDay1.getTime();
        lastDate.setDate(lastDay);
        String lastDateFormat = format2.format(lastDate);
        return lastDateFormat;
    }



    public static void main(String[] args) throws ParseException {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

        String ds1 = new String("2022-02-14");

        String ds2 = new String("2023-02-14");
        Date parse = df.parse(ds1);
        Date parse2 = df.parse(ds2);

        System.out.println(parse);
        System.out.println(parse2);


        //System.out.println(addMinute("20180222164800", "-7200"));
        //System.out.println(formatDt("20170809"));
        //     System.out.println(getMonthAfternStr(-1));
//        System.out.println(checkInviteDate("20181230"));
//        System.out.println(getDatePoorDay("20181216","20181230"));
        //        System.out.println(plusDate("20181009", -3));
        //        System.out.println(getDatePoorDay("20181009", "20181006"));
    }


}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zcy_code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值