一、依赖:
<!--Hutool Java工具包-->
<dependency>
<groupId></groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.5</version>
</dependency>
二、常用方法
1.计算生日
方法 | 参数 | 返回值 | 作用 |
---|---|---|---|
age(Date birthday, Date dateToCompare) | birthday:生日 |
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
((new Date()));
-- 2024-03-01 19:45:51
-- 获取某周的开始时间
((new Date()));
-- 2024-02-26 00:00:00
3.计算两个时间之差
方法 | 参数 | 返回值 | 作用 |
---|---|---|---|
between(Date beginDate, Date endDate, DateUnit unit) | beginDate:起始日期 |
long | 判断两个日期相差的时长,只保留绝对值 |
between(Date beginDate, Date endDate, DateUnit unit, boolean isAbs) | beginDate:起始日期 |
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为 |
betweenWeek(Date beginDate, Date endDate, boolean isReset) | beginDate:开始时间 endDate:结束时间 isReset:是否重置时间为起始时间 |
long | 计算指定时间区间内的周数 |
示例:
// 获取年份
int year = (new Date());
// 获取今天日期 yyyy-MM-dd格式
String today = ();
// 获取生肖
String chineseZodiac = (1990);
// 将毫秒转成方便阅读的时间,如3小时25分23秒232毫秒
String readableTime = (12323232);
// 转为农历日期
ChineseDate chineseDate = new ChineseDate(new Date());
// 农历年份,如2021
final int chineseYear = ();
// 农历月份,如腊月
final String chineseMonthName = ();
// 农历日期,如初三
final String chineseDay = ();
// 方便地将Date转换为LocalDateTime
final LocalDateTime localDateTime = (new Date());
// 获取一天开始时间
(localDateTime);
// 获取一天结束时间
(localDateTime);