前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java时间日期工具类

Java时间日期工具类

作者头像
sunonzj
发布2022-06-21 10:33:51
6730
发布2022-06-21 10:33:51
举报
文章被收录于专栏:zjblogzjblog
代码语言: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();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档