学无先后,达者为师

网站首页 编程语言 正文

DateUtils 日期工具类

作者:折木plus 更新时间: 2023-07-05 编程语言

DateUtils.java

package com.authine.cloudpivot.ext.utils;

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


public class DateUtils {
    /**
     * 获取当月第一天
     * @param date
     * @return
     */
    public static Date getFirstDayDateOfMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }

    /**
     * 获取当月最后一天
     * @param date
     * @return
     */
    public static Date getLastDayOfMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }

    /**
     * 获取下月当天时间
     * @param date
     * @return
     */
    public static Date getNextMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH,1);

        return cal.getTime();

    }

    /**
     * 获取上月当天时间
     * @param date
     * @return
     */
    public static Date getLastMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH,-1);

        return cal.getTime();

    }

    /**
     * 获取当天开始时间
     * @param date
     * @return
     */
    public static Date getDayBegin(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DAY_OF_MONTH,0);

        //当天开始时间
        cal.set(Calendar.HOUR_OF_DAY,0);
        cal.set(Calendar.MINUTE,0);
        cal.set(Calendar.SECOND,0);
        cal.set(Calendar.MILLISECOND,0);

        return cal.getTime();

    }

    /**
     * 获取当天最后时间
     * @param date
     * @return
     */
    public static Date getDayEnd(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DAY_OF_MONTH,0);

        //当天结束时间
        cal.set(Calendar.HOUR_OF_DAY,23);
        cal.set(Calendar.MINUTE,59);
        cal.set(Calendar.SECOND,59);
        cal.set(Calendar.MILLISECOND,999);

        return cal.getTime();

    }

    /**
     * 获取后一天
     * @param date
     * @return
     */
    public static Date getNextDay(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DATE,1);

        return cal.getTime();

    }

    /**
     * 判断当前日期是否是周末
     * @param date
     * @return
     */
    public static Boolean isWeekend(Date date){
        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
            return true;
        }

        return false;
    }

    /**
     * 获取某季度的第一天和最后一天
     *@param num 第几季度
     */
    public static String[] getCurrQuarter(int num) {

        String[] s = new String[2];

        String str = "";

        // 设置本年的季

        Calendar quarterCalendar = null;

        switch (num) {

            case 1: // 本年到现在经过了一个季度,在加上前4个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 3);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "01-01";

                s[1] = str;

                break;

            case 2: // 本年到现在经过了二个季度,在加上前三个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 6);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "04-01";

                s[1] = str;

                break;

            case 3:// 本年到现在经过了三个季度,在加上前二个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 9);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "07-01";

                s[1] = str;

                break;

            case 4:// 本年到现在经过了四个季度,在加上前一个季度

                quarterCalendar = Calendar.getInstance();

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "10-01";

                s[1] = str.substring(0, str.length() - 5) + "12-31";

                break;

        }

        return s;

    }

    /**
     * 用途:以指定的格式格式化日期字符串
     * @param pattern 字符串的格式
     * @param currentDate 被格式化日期
     * @return String 已格式化的日期字符串
     */
    public static String formatDate(Date currentDate, String pattern){

        if(currentDate == null || "".equals(pattern) || pattern == null){
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        return sdf.format(currentDate);

    }


}

原文链接:https://blog.csdn.net/zhouzhou992/article/details/123256271

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新