Hutool时间相关工具类

本文介绍了如何在Java项目中使用Hutool库处理日期、时间,包括依赖管理、日期与时间类型转换、字符串解析和格式化、日期差计算以及SpringBoot中的日期配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、引用Maven依赖

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

2、Date、long、Calendar之间的相互转换

//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

3、字符串转日期

DateUtil.parse方法会自动识别一些常用格式,包括:

yyyy-MM-dd HH:mm:ss

  • yyyy/MM/dd HH:mm:ss
  • yyyy.MM.dd HH:mm:ss
  • yyyy年MM月dd日 HH时mm分ss秒
  • yyyy-MM-dd
  • yyyy/MM/dd
  • yyyy.MM.dd
  • HH:mm:ss
  • HH时mm分ss秒
  • yyyy-MM-dd HH:mm
  • yyyy-MM-dd HH:mm:ss.SSS
  • yyyyMMddHHmmss
  • yyyyMMddHHmmssSSS
  • yyyyMMdd
  • EEE, dd MMM yyyy HH:mm:ss z
  • EEE MMM dd HH:mm:ss zzz yyyy
  • yyyy-MM-dd'T'HH:mm:ss'Z'
  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
  • yyyy-MM-dd'T'HH:mm:ssZ
  • yyyy-MM-dd'T'HH:mm:ss.SSSZ
String dateStr = "2023-10-17";
Date date = DateUtil.parse(dateStr);

我们也可以使用自定义日期格式转化:

String dateStr = "2023-10-17";
Date date = DateUtil.parse(dateStr, DatePattern.NORM_DATE_PATTERN);

4、格式化日期输出

String dateStr = "2023-10-17";
Date date = DateUtil.parse(dateStr);

//结果 2023年10月17日
String format = DateUtil.format(date, DatePattern.CHINESE_DATE_PATTERN);

//常用格式的格式化,结果:2023-10-17
String formatDate = DateUtil.formatDate(date);

//结果:2023-10-17 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//结果:00:00:00
String formatTime = DateUtil.formatTime(date);

5、日期时间差

String dateStr1 = "2023-03-01 22:33:23";
Date date1 = DateUtil.parse(dateStr1);

String dateStr2 = "2023-04-01 23:33:23";
Date date2 = DateUtil.parse(dateStr2);

//相差一个月,31天
long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);

6、常用日期方法

String dateStr = "2023-10-17 22:33:23";
Date date = DateUtil.parse(dateStr);

//一天的开始,结果:2023-10-17 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);

//一天的结束,结果:2023-10-17 23:59:59
Date endOfDay = DateUtil.endOfDay(date);


// 加1天
Date tomorrow = DateUtil.offsetDay(date, 1);
 
// 加上1个小时
Date nextHour = DateUtil.offsetHour(date, 1);
 
// 加上30分钟
Date next30Minutes = DateUtil.offsetMinute(date, 30);
 
// 加上10秒
Date next10Seconds = DateUtil.offsetSecond(date, 10);

// 减去1天
Date yesterday = DateUtil.offsetDay(date, -1);
 
// 减去1个小时
Date prevHour = DateUtil.offsetHour(date, -1);
 
// 减去30分钟
Date prev30Minutes = DateUtil.offsetMinute(date, -30);
 
// 减去10秒
Date prev10Seconds = DateUtil.offsetSecond(date, -10);

//年龄
DateUtil.ageOfNow("1990-01-30");

7、Spring Boot日期格式化配置

spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值