Hutool⼯具类集介绍及简单使⽤
Hutool是⼀个Java⼯具集,针对项⽬中util包进⾏开⼑,抽象⼤量的⼯具⽅法,旨在减少项⽬中⼯具类的数量,将我们的编码⼯作专注在业务上。Hutool 对⽂件、流、加密解密、转码、正则、线程、XML、⽇期、Http客户端 等 JDK ⽅法进⾏封装,组成各种 Util ⼯具类。Hutool并⾮框架,⽽是⼀个⼯具类⽅法集合,随⽤随取,且随时可被替换,与任何框架不冲突。 Hutool的⼤部分⼯具⽅法并不依赖第三⽅包(extra模块对第三⽅框架封装⼯具类除外),轻量简洁。
功能
⼀个Java基础⼯具类,对⽂件、流、加密解密、转码、正则、线程、XML等JDK⽅法进⾏封装,组成各种Util⼯具类,同时提供以下组件:
布隆过滤缓存克隆接⼝类型转换⽇期处理数据库ORM(基于ActiveRecord思想)基于DFA有限⾃动机的多个关键字查HTTP客户端IO和⽂件有⽤的⼀些数据结构⽇志反射代理类的简化(AOP切⾯实现)Setting(⼀种扩展Properties的配置⽂件)System(JVM和系统信息等)WatchService的封装(⽂件变动监控)XXXUtil各种有⽤的⼯具类
简介
Hutool是Hu + tool的⾃造词,前者致敬我的“前任公司”,后者为⼯具之意,谐⾳“糊涂”,寓意追求“万事都作糊涂观,⽆所谓失,⽆所谓得”的境界。
Hutool是⼀个Java⼯具包,也只是⼀个⼯具包,它帮助我们简化每⼀⾏代码,减少每⼀个⽅法,让Java语⾔也可以“甜甜的”。Hutool最初是我项⽬中“util”包的⼀个整理,后来慢慢积累并加⼊更多⾮业务相关功能,并⼴泛学习其它开源项⽬精髓,经过⾃⼰整理修改,最终形成丰富的开源⼯具集。
安装
maven项⽬在l添加以下依赖即可:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.3</version>
</dependency>
常⽤⼯具类
Convert
类型转换⼯具类,⽤于各种类型数据的转换。
类型转换
类型转换的⼯具类为Convert
转为字符串
// int类型转换
int aInt = 1023;
String aStr = Str(aInt);
// aStr结果为1023
System.out.println(aStr);
/
/ 数组进⾏转换
int[] bArray = {1,2,3,4,5};
String bStr = Str(bArray);
// bStr结果为[1, 2, 3, 4, 5]
System.out.println(bStr);
转为指定类型数组
String[] strArray = { "1", "0", "2", "3" };
//结果为Integer数组
Integer[] intArray = IntArray(strArray);
System.out.Str(intArray));
Integer[] intArray2 = {1,0,2,3};
/
/结果为String数组
String[] strArray2 = StrArray(intArray2); System.out.Str(strArray2));
转换为Date⽇期对象
String date = "2000-10-23";
//结果为Date⽇期对象
Date value = Date(date);
System.out.println(value);
转化为List集合
Object[] objectArray = {"lolly1023","lolly",1023};
List<?> list = vert(List.class, objectArray); System.out.println(list);
// 4.1.11版本之后可使⽤toList
List<?> list2 = List(objectArray);
System.out.println(list2);
//转换为字符串
int a = 1;
String aStr = Str(a);
//转换为指定类型数组
String[] b = {"1", "2", "3", "4"};
Integer[] bArr = IntArray(b);
//转换为⽇期对象
String dateStr = "2017-05-06";
Date date = Date(dateStr);
/
/转换为列表
String[] strArr = {"a", "b", "c", "d"};
List<String> strList = List(String.class, strArr);
⽇期时间
⽇期时间的⼯具类为DateUtil
多种获取⽇期的⽅式
// 获取当前时间的Date对象
Date nowDate = DateUtil.date();
System.out.println(nowDate);
// 使⽤Calendar获取当前时间的Date对象
Date nowDate2 = DateUtil.Instance());
System.out.println(nowDate2);
// 使⽤当前时间戳获取当前时间的Date对象
Date nowDate3 = DateUtil.date(System.currentTimeMillis());
System.out.println(nowDate3);
// 使⽤⼯具类获取当前时间的字符串,格式为:yyyy-MM-dd HH:mm:ss
String nowDateStr = w();
System.out.println(nowDateStr);
// 使⽤⼯具类获取当前时间的字符串,格式为:yyyy-MM-dd
String todayDateStr= day();
System.out.println(todayDateStr);
字符串转换为Date对象
字符串转为Date对象使⽤到了DateUtil⼯具类中的parse⽅法,该⽅法会⾃动识别⼀些⽇期的常⽤格式,例如:
1. yyyy-MM-dd HH:mm:ss.SSS
2. yyyy-MM-dd HH:mm:ss
3. yyyy-MM-dd HH:mm
4. yyyy-MM-dd
5. HH:mm:ss
// 字符串转为Date对象
String dateStr = "2000-10-23 12:30";
Date date = DateUtil.parse(dateStr);
// 输出2000-10-23 12:30:00
System.out.println(date);
// 也可以在转的时候指定格式
Date date2 = DateUtil.parse(dateStr,"yyyy-MM-dd");
// 输出2000-10-23 00:00:00
System.out.println(date2);
格式化Date对象
//格式化Date⽇期对象
Date date4 = DateUtil.date();
String format = DateUtil.format(date4, "yyyy年MM⽉dd⽇"); // 输出为2021年02⽉19⽇
System.out.println(format);
String formatDate = DateUtil.formatDate(date4);
// 常⽤格式化,输出为2021-02-19
System.out.println(formatDate);
String formatDateTime = DateUtil.formatDateTime(date4); // 精确到秒,结果为2021-02-19 21:16:09
System.out.println(formatDateTime);
String formatTime = DateUtil.formatTime(date4);
// 只保留时分秒,结果为21:16:09
System.out.println(formatTime);
获取Date对象的年⽉⽇
// 获取Date对象的年⽉⽇
Date date5 = DateUtil.date();
// 获取年,结果为2021
System.out.ar(date5));
// 获取⽉,结果为1(从0开始计数,0则为⼀⽉)
System.out.h(date5));
// 获取⽇(在本年)
System.out.println(DateUtil.dayOfYear(date5));
// 获取⽇(在本⽉)
System.out.println(DateUtil.dayOfMonth(date5));
// 获取⽇(在本周)
System.out.println(DateUtil.dayOfWeek(date5));
开始和结束⽇期
⽤于计算开始时间和结束时间,有每天的,每⽉的,等等
Date date3 = DateUtil.date();
/
/⼀天的开始,结果:2021-02-19 00:00:00
Date beginOfDay = DateUtil.beginOfDay(date3);
System.out.println(beginOfDay);
//⼀天的结束,结果:2021-02-19 23:59:59
Date endOfDay = dOfDay(date3);
System.out.println(endOfDay);
//⼀⽉的开始,结果:2021-02-01 00:00:00
Date beginOfMonth = DateUtil.beginOfMonth(date3);
System.out.println(beginOfMonth);
//⼀⽉的结束,结果:2021-02-28 23:59:59
Date endOfMonth = dOfMonth(date3);
System.out.println(endOfMonth);
⽇期时间的偏移
对⽇期的减少或者添加,可以对时分秒天周⽉等进⾏更改
String dateStr2 = "2000-10-23 12:30";
Date date6 = DateUtil.parse(dateStr2);
// 偏移10天
DateTime newDate = DateUtil.offsetDay(date, 10);
// 结果为2000-11-02 12:30:00
System.out.println(newDate);
// 偏移-10天
bigdecimal格式化两位小数DateTime newDate2 = DateUtil.offsetDay(date, -10);
/
/ 结果为2000-10-13 12:30:00
System.out.println(newDate2);
/**常⽤的偏移还有
* ⽉份 :DateUtil.offsetMonth(newDate2, offset)
* 周:DateUtil.offsetWeek(newDate2, offset)
*/
// 对⽐这种偏移,还有⼀种较简单的偏移⽅法
//昨天
System.out.sterday());
//明天
System.out.ow());
/
/上周
System.out.println(DateUtil.lastWeek());
//下周
System.out.Week());
//上个⽉
System.out.println(DateUtil.lastMonth());
//下个⽉
System.out.Month());
⽇期时间差
⽤于计算两个⽇期直接的时间差
String dateStr3 = "2000-10-23 12:30:00";
Date date7 = DateUtil.parse(dateStr3);
Date date8 = DateUtil.date();
// 计算2000-10-23距今多久:7424天
long betweenDay = DateUtil.between(date7, date8, DateUnit.DAY); System.out.println(betweenDay);
计时器
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论