Java时间日期工具类

2022-06-21 10:33:51 浏览数 (1)

代码语言:javascript复制
     leftDaterightDateleftDaterightDateleftDaterightDate@param @param @return
     leftDaterightDateleftDaterightDateleftDaterightDate@param @return
     datecalendar getInstancecalendardatecalendarcalendarcalendarcalendar@param @return
   老是忘,还是记录下 -_-||
代码语言:javascript复制
package zjhuiwan.cn.helper;

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

/**
 * Created by on 2019/4/17.
 */
public class WeekMonthUtil {

    /**
     * leftDate是否在rightDate之前或相等
     * 
     * @param leftDate
     * @param rightDate
     * @return
     */
    public static Boolean beforeOrEquals(Date leftDate, Date rightDate) {
        return leftDate.before(rightDate) || leftDate.equals(rightDate);
    }

    /**
     * leftDate是否在rightDate之后或相等
     * 
     * @param leftDate
     * @param rightDate
     * @return
     */
    public static Boolean afterOrEquals(Date leftDate, Date rightDate) {
        return leftDate.after(rightDate) || leftDate.equals(rightDate);
    }

    /**
     * 获取传入时间的当天0点
     * 
     * @param date
     * @return
     */
    public static Date getDateZero(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        return calendar.getTime();
    }

    /**
     * 获取传入时间的当天最后一秒
     * 
     * @param date
     * @return
     */
    public static Date getDateLast(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(getDateZero(date));
        calendar.add(Calendar.DAY_OF_MONTH, 1); // 一天后的时间
        calendar.add(Calendar.SECOND, -1);
        return calendar.getTime();
    }

    /**
     * 格式化日期为字符串
     *
     * @param date
     * @return
     */
    public static String getDateStr(Date date, String fmt) {
        SimpleDateFormat sdf = new SimpleDateFormat(fmt);
        return sdf.format(date);
    }

    /**
     * 格式化字符串为日期
     *
     * @param date
     * @return
     */
    public static Date getDateLast(String date, String fmt) {
        SimpleDateFormat sdf = new SimpleDateFormat(fmt);
        Date dateSdf = null;
        try {
            dateSdf = sdf.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateSdf;
    }

    /**
     * 获得本周一与当前日期相差的天数
     * 
     * @param date
     * @return
     */
    public static int getMondayPlus(Date date) {
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1) {
            return -6;
        } else {
            return 2 - dayOfWeek;
        }
    }

    /**
     * 获得当前周的周一
     * 
     * @param date
     * @return
     */
    public static Date getCurrentMonday(Date date) {
        int mondayPlus = getMondayPlus(date);
        GregorianCalendar currentDate = new GregorianCalendar();
        currentDate.add(GregorianCalendar.DATE, mondayPlus);
        Date monday = currentDate.getTime();
        return monday;
    }

    /**
     * 获得当前周的周日
     * 
     * @param date
     * @return
     */
    public static Date getPreviousSunday(Date date) {
        int mondayPlus = getMondayPlus(date);
        GregorianCalendar currentDate = new GregorianCalendar();
        currentDate.add(GregorianCalendar.DATE, mondayPlus   6);
        Date monday = currentDate.getTime();
        return monday;
    }

    /**
     * 获得当前月的开始日期
     * 
     * @param date
     * @return
     */
    public static Date getMinMonthDate(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        return calendar.getTime();
    }

    /**
     * 获得当前月的结束日期
     * 
     * @param date
     * @return
     */
    public static Date getMaxMonthDate(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        return calendar.getTime();
    }

    /**
     * 获取上N个月
     * 
     * @return
     */
    public static Date getPreMonth(Date date, int n) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, -1 * n);
        return calendar.getTime();
    }

    /**
     * 
     * 获取下N个月.
     * 
     * @return
     */
    public static Date getNextMonth(Date date, int n) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, n);
        return calendar.getTime();
    }
}

0 人点赞