1.1 开源项目简介
Hultool 是Java领域一个非常强大好用的开源工具库集。
下面是官网介绍:
- Hutool是一个功能丰富且易用的Java工具库,通过诸多实用工具类的使用,旨在帮助开发者快速、便捷地完成各类开发任务。
- 这些封装的工具涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作,
- 可以满足各种不同的开发需求。
1.2 功能说明
Hultool 是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
hutool-aop
JDK动态代理封装,提供非IOC下的切面支持hutool-bloomFilter
布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 简单缓存实现hutool-core
核心,包括Bean操作、日期、各种Util等hutool-cron
定时任务模块,提供类Crontab表达式的定时任务hutool-crypto
加密解密模块,提供对称、非对称和摘要算法封装hutool-db
JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字查找hutool-extra
扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)hutool-http
基于HttpUrlConnection的Http客户端封装 hutool-log 自动识别日志实现的日志门面hutool-script
脚本执行封装,例如Javascripthutool-setting
功能更强大的Setting配置文件和Properties封装hutool-system
系统参数调用封装(JVM信息等) hutool-json JSON实现hutool-captcha
图片验证码实现 hutool-poi 针对POI中Excel和Word的封装hutool-socket
基于Java的NIO和AIO的Socket封装hutool-jwt
JSON Web Token
(JWT)封装实现 可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。
1.4 如何使用 Hultool?
1.4.1 Maven 项目
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.19</version>
</dependency>
1.4.2 Gradle 项目
implementation 'cn.hutool:hutool-all:5.8.19'
1.3 使用说明
Hultool 文档资源很全,具体用法可参考如下资料:
-
📘中文文档
-
📘中文备用文档
-
📙参考API
-
🎬视频介绍
-
查看HulTool 源码
Hutool的源码分为两个分支,功能如下:
分支 | 作用 |
---|---|
v5-master | 主分支,release版本使用的分支,与中央库提交的jar一致,不接收任何pr或修改 |
v5-master | 开发分支,默认为下个版本的SNAPSHOT版本,接受修改或pr |
1.4 强大功能展示
1.4.1 想将一个字符串转成Date类型?
DateUtil.parse方法会自动识别一些常用格式,包括:
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 = "2017-03-01";
Date date = DateUtil.parse(dateStr);
用法示例二
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr, "yyyy-MM-dd");
1.4.2 判断两个日期之间相隔多少天?
String dateStr1 = "2017-03-01 22:33:23";
Date date1 = DateUtil.parse(dateStr1);
String dateStr2 = "2017-04-01 23:33:23";
Date date2 = DateUtil.parse(dateStr2);
//相差一个月,31天
long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);
注意:经过测试,参数date1和date2 传入的先后顺序无关
1.4.3 传入年月日时分秒,返回精确到毫秒的起止时间
代码示例
ElkLogQueryParam elkLogQueryParam=new ElkLogQueryParam();
elkLogQueryParam.setStartTimeStr("2023-05-29 16:14:11");
elkLogQueryParam.setEndTimeStr("2023-05-31 16:14:11");
Date startDate= ElkDateUtils.convertStartDateTimeDetail(elkLogQueryParam.getStartTimeStr());
Date endDate= ElkDateUtils.convertEndDateTimeDetail(elkLogQueryParam.getEndTimeStr());
String formatStartDate=DateUtil.format(startDate,"yyyy-MM-dd HH:mm:ss.SSS");
String formatEndDate=DateUtil.format(endDate,"yyyy-MM-dd HH:mm:ss.SSS");
System.out.println(formatStartDate);
System.out.println(formatEndDate);
输出结果:
2023-05-29 16:14:11.000
2023-05-31 16:14:11.999
功能二次封装增强文章来源:https://www.toymoban.com/news/detail-772276.html
public static Date convertStartDateTimeDetail(String startTimeStr){
return DateUtil.parse(startTimeStr+".000", "yyyy-MM-dd HH:mm:ss.SSS");
}
public static Date convertEndDateTimeDetail(String endTimeStr){
return DateUtil.parse(endTimeStr+".999", "yyyy-MM-dd HH:mm:ss.SSS");
}
1.4.4 最常用-年月日时分秒字符串转日期类型
String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);
1.4.5 最常用-年月日时分秒日期类型转字符串
Date date = new Date();
String dateStr = DateUtil.formatDateTime(date);
// 输出字符串 2023-09-01 10:42:00
1.4.6 获取某个日期的开始时间和结束时间
有的时候我们需要获得每天的开始时间、结束时间,每月的开始和结束时间等等,DateUtil也提供了相关方法:文章来源地址https://www.toymoban.com/news/detail-772276.html
String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);
//一天的开始,结果:2017-03-01 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date);
//一天的结束,结果:2017-03-01 23:59:59
Date endOfDay = DateUtil.endOfDay(date);
到了这里,关于Java领域好用强大的开源库之HulTool的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!