网站首页 > 博客文章 正文
Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。
一、Hutool 依赖包
在 Mavan 项目中引入 dependency 即可。通过 Hutool,可以减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
Hutool 提供了对日期时间、随机数、图片、布隆过滤器、文件、流、加密解密、转码、正则、线程、XML、JSON等常用方法进行封装,组成各种Util工具类,同时提供以下组件:
可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。
二、日期 API
我们知道,Java 中关于日期的 API 使用一直很繁琐,从 Date 到 Calendar,对开发者都不是那么友好,还容易出 BUG,那么 Hutool 首先就对日期下手了,提供了针对 JDK 中 Date 和 Calendar 对象的封装。
比如要对当前的 Date 日期进行格式化,一般使用 SimpleDateFormat(yyyy-MM-dd HH:mm:ss) 这种方式,但 SimpleDateFormat 这个类是线程不安全的,而 Hutool 提供了一个 FastDateFormat 类,提供线程安全的针对 Date 对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已经封装在 DateUtil 和 DateTime 的相关方法中。
下面是一段日期API 的示例代码:
import cn.hutool.core.date.*;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Date;
@SpringBootTest
public class DateTest {
@Test
public void testDate() {
// 获取当前日期
Date date = DateUtil.date();
System.out.println(date);
// 格式化日期输出
//结果 2022/xx/xx
String format = DateUtil.format(date, "yyyy/MM/dd");
//常用格式的格式化,结果:2022-xx-xx
String formatDate = DateUtil.formatDate(date);
//结果:2022-xx-xx 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);
//结果:00:00:00
String formatTime = DateUtil.formatTime(date);
System.out.printf("%s, %s, %s, %s\n", format, formatDate, formatDateTime, formatTime);
String dateStr1 = "2022-08-08 08:08:08";
Date date1 = DateUtil.parse(dateStr1);
String dateStr2 = "2023-01-01 00:00:00";
Date date2 = DateUtil.parse(dateStr2);
// 日期时间差
long betweenDay = DateUtil.between(date1, date2, DateUnit.MS);
// 格式化时间差,输出:2天1小时1分4秒
String formatBetween = DateUtil.formatBetween(betweenDay, BetweenFormatter.Level.SECOND);
System.out.println(formatBetween);
//一天的开始,结果:2022-xx-01 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);
//一天的结束,结果:2022-xx-01 23:59:59
Date endOfDay = DateUtil.endOfDay(date);
System.out.printf("%s %s \n", beginOfDay, endOfDay);
// 星座和属相
// 射手座
String zodiac = DateUtil.getZodiac(Month.JUNE.getValue(), 11);
System.out.println(zodiac);
// 蛇
String chineseZodiac = DateUtil.getChineseZodiac(2003);
System.out.println(chineseZodiac);
DateTime dateTime = DateUtil.offsetDay(date1, 10);
System.out.println(dateTime);
}
}
输出结果:
2022-08-16 23:20:57
2022/08/16, 2022-08-16, 2022-08-16 23:20:57, 23:20:57
145天15小时51分52秒
2022-08-16 00:00:00 2022-08-16 23:59:59
双子座
羊
2022-08-18 08:08:08
猜你喜欢
- 2024-11-01 【SpringBoot系列教程五】一文学会SpringSecurity
- 2024-11-01 Spring Security 从入门到实战(前后端分离)
- 2024-11-01 实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步
- 2024-11-01 Mybatis-Plus中的代码生成器超详细解析!完整配置
- 2024-11-01 springcloud实践二:gateway网关详解
- 2024-11-01 Redis 中 keys 命令带来的线上性能问题,怎么解决?
- 2024-11-01 JVS快速开发框架产品说明书(V2.1.3)
- 2024-11-01 国内最火的10款Java开源项目,都是国人开发,CMS居多
- 2024-11-01 超级好用的Java 工具类库GitHub 星标 10k+你有在用吗?
- 2024-11-01 “实用”的JAVA开发工具类库(java常用开发平台工具)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)