Hutool Java工具类库-DateUtil(时间工具类)

本文介绍了HutoolJava工具包中的常用日期处理方法,包括计算生日、获取特定时间的开始和结束日期、以及计算两个日期之间的差异。此外,还展示了如何进行时间格式转换和农历日期处理。
摘要由CSDN通过智能技术生成

 一、依赖:

<!--Hutool Java工具包-->
    <dependency>
       <groupId>cn.hutool</groupId>
       <artifactId>hutool-all</artifactId>
       <version>5.4.5</version>
 </dependency>

二、常用方法

1.计算生日

方法参数返回值作用
age(Date birthday, Date dateToCompare)birthday:生日
dateToCompare:需要对比的日期
int 
计算相对于dateToCompare的年龄,常用于计算指定生日在某年的年龄
ageOfNow(String birthDay)birthDay:生日,标准日期字符串int生日转为年龄,计算法定年龄
ageOfNow(Date birthDay)birthDay:生日int生日转为年龄,计算法定年龄

2.获取某时间的开始|结束日期

方法参数返回值作用
beginOfDay(Date date)date:日期DateTime获取某天的开始时间
endOfDay(Date date)date:日期DateTime获取某天的结束时间
beginOfWeek(Date date)date:日期DateTime获取某周的开始时间,周一定为一周的开始时间
beginOfWeek(Date date, boolean isMondayAsFirstDay)date:日期
isMondayAsFirstDay:是否周一做为一周的第一天(false表示周日做为第一天)
DateTime获取某周的开始时间
endOfWeek(Date date)date:日期DateTime获取某周的结束时间,周日定为一周的结束
endOfWeek(Date date, boolean isSundayAsLastDay)date:日期
isSundayAsLastDay:是否周日做为一周的最后一天(false表示周六做为最后一天)
DateTime获取某周的结束时间
beginOfMonth(Date date)date:日期DateTime获取某月的开始时间
endOfMonth(Date date)date:日期DateTime获取某月的结束时间
beginOfQuarter(Date date)date:日期

DateTime

获取某季度的开始时间
endOfQuarter(Date date)date:日期

DateTime

获取某季度的结束时间
beginOfYear(Date date)date:日期

DateTime

获取某年的开始时间
endOfYear(Date date)date:日期

DateTime

获取某年的结束时间
beginOfSecond(Date date)date:日期

DateTime

获取秒级别的开始时间,即毫秒部分设置为0

示例:

/**
 * new Date() 时间为2024-03-01 19:45:51
 */

// 获取秒级别的开始时间,即毫秒部分设置为0
System.out.println(DateUtil.beginOfSecond(new Date()));
-- 2024-03-01 19:45:51


-- 获取某周的开始时间
System.out.println(DateUtil.beginOfWeek(new Date()));
-- 2024-02-26 00:00:00

3.计算两个时间之差

方法参数返回值作用
between(Date beginDate, Date endDate, DateUnit unit)beginDate:起始日期
endDate:结束日期
unit:相差的单位:相差 天DateUnit.DAY、小时DateUnit.HOUR 等
long判断两个日期相差的时长,只保留绝对值
between(Date beginDate, Date endDate, DateUnit unit, boolean isAbs)beginDate:起始日期
endDate:结束日期
unit:相差的单位:相差 天DateUnit.DAY、小时DateUnit.HOUR 等
isAbs:日期间隔是否只保留绝对值正数
long判断两个日期相差的时长
betweenMs(Date beginDate, Date endDate)beginDate:起始日期
endDate:结束日期
long判断两个日期相差的毫秒数
betweenDay(Date beginDate, Date endDate, boolean isReset)beginDate:起始日期
endDate:结束日期
isReset:是否重置时间为起始时间
long判断两个日期相差的天数。有时候我们计算相差天数的时候需要忽略时分秒。
 比如:2016-02-01 23:59:59和2016-02-02 00:00:00相差一秒
 如果isReset为 false相差天数为0。
 如果isReset为 true相差天数将被计算为1
betweenWeek(Date beginDate, Date endDate, boolean isReset)beginDate:开始时间
endDate:结束时间
isReset:是否重置时间为起始时间
long计算指定时间区间内的周数

示例:

// 获取年份
int year = DateUtil.year(new Date());

// 获取今天日期 yyyy-MM-dd格式
String today = DateUtil.today();

// 获取生肖
String chineseZodiac = DateUtil.getChineseZodiac(1990);

// 将毫秒转成方便阅读的时间,如3小时25分23秒232毫秒
String readableTime = DateUtil.formatBetween(12323232);

// 转为农历日期
ChineseDate chineseDate = new ChineseDate(new Date());
// 农历年份,如2021
final int chineseYear = chineseDate.getChineseYear();
// 农历月份,如腊月
final String chineseMonthName = chineseDate.getChineseMonthName();
// 农历日期,如初三
final String chineseDay = chineseDate.getChineseDay();

// 方便地将Date转换为LocalDateTime
final LocalDateTime localDateTime = LocalDateTimeUtil.of(new Date());

// 获取一天开始时间
LocalDateTimeUtil.beginOfDay(localDateTime);
// 获取一天结束时间
LocalDateTimeUtil.endOfDay(localDateTime);

  • 27
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值