Java DateUtil工具类(持续更新中...)

引言:开发中需要对Date日期进行一系列操作,每次单独写会造成代码冗余,DateUtil工具类中封装了一些常用的方法,例如:增加几个月,增加几天、增加几小时等等。遇到对Date的相关操作,直接调用即可,代码方便简洁。

DateUtil工具类

public class DateUtil {
	 /**
     * 获取当前系统时间
     */
    public static Date now() {
        return new Date();
    }
    
	 /**
     * Date日期转String日期
     * @param date 日期
     * @param pattern 格式 例如:yyyy-MM-dd HH:mm:ss
     */
	public static String toString(Date date, String pattern) {
        return new SimpleDateFormat(pattern).format(date);
    }
    
    /**
     * String日期转Date日期
     * @param date 日期
     * @param pattern 格式 例如:yyyy-MM-dd HH:mm:ss
     */
	public static Date toDate(String date, String pattern) throws Exception {
        return new SimpleDateFormat(pattern).parse(date);
    }

	/**
     * 增加月份
     * @param date 日期
     * @param count 月份数
     */
    public static Date addMonths(Date date, int count){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, count);
        return calendar.getTime();
    }

     /** 
     * 增加天数
     * @param date 日期
     * @param days 天数
     */
	public static Date addDays(Date date, int days) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE,days);
        return calendar.getTime();
    }

	 /**
     * 增加小时
     * @param date 日期
     * @param count 小时数
     */
    public static Date addHours(Date date, int count) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR, count);
        return calendar.getTime();
    }
	
	 /**
     * 增加分钟
     * @param date 日期
     * @param count 分钟数
     */
    public static Date addMinutes(Date date, int count){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE, count);
        return calendar.getTime();
    }

	/**
     * 获取当前日期处于一周的周几
     * @param date 日期
     */
    public static int getDayOfWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

        int day = calendar.get(Calendar.DAY_OF_WEEK);
        return day != 1 ? day - 1 : 7;
    }

	/**
     * 获取当前日期在所处月份的总天数
     * @param date 日期
     */
    public static int getMonthTotalDays(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

	/**
     * 获取当前日期在所处月份中的第几天
     * @param date 日期
     */
    public static int getDayOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DAY_OF_MONTH);
    }

	/**
     * 获取一个时间范围内的所有日期
     * @param date 日期
     */
    public static List<Date> getBetweenDates(Date fromDate, Date toDate) {
        List<Date> dates = new ArrayList<>();

        while (fromDate.getTime() <= toDate.getTime()) {
            dates.add(fromDate);
            fromDate = DateUtil.addDays(fromDate, 1);
        }

        return dates;
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值