DateUtil整理

背景:
DateUtil整理,便于使用。
注:其中大部分功能jdk 自带或使用第三方工具类即可。
推荐使用hutool(其还有很多方便使用的工具类):

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.7</version>
</dependency>

特殊需要使用的整理(持续更新…):

/**
 * 时间工具类
 *
 * @since 2021/1/28
 */
public class DateUtils {

    /**
     * 获取当月第一天(hutool有)
     * @since 2021-01:23 15:16:36
     */
    public static Date getMonthFirstDay() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.MONTH, 0);
        return calendar.getTime();
    }

    /**
     * 获取当月最后一天(hutool有)
     * @since 2021-01:23 15:16:36
     */
    public static Date getMonthLastDay() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.DAY_OF_MONTH, 0);
        calendar.add(Calendar.MONTH, 1);
        return calendar.getTime();
    }

    /**
     * 获取某月最后一天(hutool有)
     * @since 2021-01:23 15:16:36
     */
    public static Date getMonthLastDayByDate(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, 0);
        calendar.add(Calendar.MONTH, 1);
        return calendar.getTime();
    }

    /**
     * 获得当天最小时间(hutool有)
     *
     * @param date date
     * @since 2021-01:13 18:33:09
     */
    public static Date getStartOfDay(Date date) {
        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()),
                ZoneId.systemDefault());
        LocalDateTime startOfDay = localDateTime.with(LocalTime.MIN);
        return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 获得当天最大时间(hutool有,但是这是23:59.59.x,x是大于0的数,保存到mysql后会,时间会变为第二天00:00:00)
     *
     * @param date date
     * @since 2021-01:13 18:33:09
     */
    public static Date getEndOfDay(Date date) {
        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()),
                ZoneId.systemDefault());
        // withNano(0)的设置是避免mysql存储时变为00:00:00问题
        LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX).withNano(0);
        return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值