HuTool工具类常用方法汇总

这篇具有很好参考价值的文章主要介绍了HuTool工具类常用方法汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


文档地址
引入需要依赖
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.9</version>
</dependency>

1、DateUtil: 日期时间工具类

1.1、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();
1.2、字符串转日期
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
// 可以自定义日期格式转化
Date date = DateUtil.parse(dateStr,"yyyy-MM-dd");
1.3、格式化日期输出
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

//结果 2017/03/01
String format = DateUtil.format(date, "yyyy/MM/dd");

//常用格式的格式化,结果:2017-03-01
String formatDate = DateUtil.formatDate(date);

//结果:2017-03-01 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//结果:00:00:00
String formatTime = DateUtil.formatTime(date);
1.4、获取Date对象的某个部分
Date date = DateUtil.date();
//获得年的部分
DateUtil.year(date);
//获得月份,从0开始计数
DateUtil.month(date);
//获得月份枚举
DateUtil.monthEnum(date);
//.....
1.5、开始时间和结束时间(可以按日、按周、按月)
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);
1.6、日期时间偏移
String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);

//结果:2017-03-03 22:33:23
Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);

//常用偏移,结果:2017-03-04 22:33:23
DateTime newDate2 = DateUtil.offsetDay(date, 3);

//常用偏移,结果:2017-03-01 19:33:23
DateTime newDate3 = DateUtil.offsetHour(date, -3);

针对当前时间、提供了简化的偏移方法(例如,昨天、上周、上个月):

//昨天
DateUtil.yesterday()
//明天
DateUtil.tomorrow()
//上周
DateUtil.lastWeek()
//下周
DateUtil.nextWeek()
//上个月
DateUtil.lastMonth()
//下个月
DateUtil.nextMonth()
1.7、日期时间差
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);
1.8、格式化时间差
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天一小时
System.out.println(DateUtil.formatBetween(date1,date2, BetweenFormatter.Level.MINUTE));
1.9、星座和属相
// "摩羯座"
String zodiac = DateUtil.getZodiac(Month.JANUARY.getValue(), 19);

// "狗"
String chineseZodiac = DateUtil.getChineseZodiac(1994);
2.0、其他
//年龄
DateUtil.ageOfNow("1990-01-30");

//是否闰年
DateUtil.isLeapYear(2017);

2、Convert类型转换工具类

Convert类可以说是一个工具方法类,里面封装了针对Java常见类型的转换,用于简化类型转换。Convert类中大部分方法为toXXX,参数为Object,可以实现将任意可能的类型转换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值

2.1、Java常见类型转换
2.1.1、转换字符串
int a = 1;
//aStr为"1"
String aStr = Convert.toStr(a);

long[] b = {1,2,3,4,5};
//bStr为:"[1, 2, 3, 4, 5]"
String bStr = Convert.toStr(b);
2.1.2、转换为指定类型数组
String[] b = { "1", "2", "3", "4" };
//结果为Integer数组
Integer[] intArray = Convert.toIntArray(b);

long[] c = {1,2,3,4,5};
//结果为Integer数组
Integer[] intArray2 = Convert.toIntArray(c);
2.1.3、转换为日期对象
String a = "2017-05-06";
Date value = Convert.toDate(a);
2.1.4、转换为集合
Object[] a = {"a", "你", "好", "", 1};
List<?> list = Convert.convert(List.class, a);
//从4.1.11开始可以这么用
List<?> list = Convert.toList(a);

3、strUtil 工具类

3.1、hasBlank、hasEmpty方法

就是给定一些字符串,如果一旦有空的就返回true,常用于判断好多字段是否有空的(例如web表单数据)

这两个方法的区别是hasEmpty只判断是否为null或者空字符串(“”),hasBlank则会把不可见字符也算做空,isEmptyisBlank同理。

3.2、removePrefix、removeSuffix方法

这两个是去掉字符串的前缀后缀的,例如去个文件名的扩展名。

String fileName = StrUtil.removeSuffix("pretty_girl.jpg", ".jpg")  //fileName -> pretty_girl

还有忽略大小写的removePrefixIgnoreCaseremoveSuffixIgnoreCase都比较实用

3.3、sub方法

不得不提一下这个方法,有人说String有了subString你还写它干啥,我想说subString方法越界啥的都会报异常,你还得自己判断,难受死了,各种情况判断都加进来了,而且index的位置还支持负数哦,-1表示最后一个字符(这个思想来自于Python,如果学过Python的应该会很喜欢的),还有就是如果不小心把第一个位置和第二个位置搞反了,也会自动修正(例如想截取第4个和第2个字符之间的部分也是可以的哦~) 举个栗子

String str = "abcdefgh";
String strSub1 = StrUtil.sub(str, 2, 3); //strSub1 -> c
String strSub2 = StrUtil.sub(str, 2, -3); //strSub2 -> cde
String strSub3 = StrUtil.sub(str, 3, 2); //strSub2 -> c
3.4、format方法
String template = "{}爱{},就像老鼠爱大米";
String str = StrUtil.format(template, "我", "你"); //str -> 我爱你,就像老鼠爱大米

参数定义成了Object类型,如果传别的类型的也可以,会自动调用toString()方法的。

4、NumberUtil:数字处理工具类

可用于各种类型数字的加减乘除操作及类型判断

double n1 = 1.234;
double n2 = 1.234;
double result;
//对float、double、BigDecimal做加减乘除操作
result = NumberUtil.add(n1, n2);
result = NumberUtil.sub(n1, n2);
result = NumberUtil.mul(n1, n2);
result = NumberUtil.div(n1, n2);
//保留两位小数
BigDecimal roundNum = NumberUtil.round(n1, 2);
String n3 = "1.234";
//判断是否为数字、整数、浮点数
NumberUtil.isNumber(n3);
NumberUtil.isInteger(n3);
NumberUtil.isDouble(n3);

5、BeanUtil工具类

什么是bean?

把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。实际上JavaBean就是一个Java类,在这个Java类中就默认形成了一种规则——对属性进行设置和获得。而反之将说Java类就是一个JavaBean,这种说法是错误的,因为一个java类中不一定有对属性的设置和获得的方法(也就是不一定有set和get方法)。

通常Java中对Bean的定义是包含setXXX和getXXX方法的对象,在Hutool中,采取一种简单的判定Bean的方法:是否存在只有一个参数的setXXX方法。

Bean工具类主要是针对这些setXXX和getXXX方法进行操作,比如将Bean对象转为Map等等

Person person = new Person();
person.setAge(21);
person.setName("战三");
// bean转map
Map<String, Object> map = BeanUtil.beanToMap(person);
// map转bean
Person person1 = BeanUtil.mapToBean(map, Person.class, false);
// 属性拷贝
Person person2 = BeanUtil.copyProperties(person1, Person.class);

6、CollUtil工具类

集合操作工具类,定义了一些常用的集合操作文章来源地址https://www.toymoban.com/news/detail-428806.html

//数组转换为列表
String[] array = new String[]{"a", "b", "c", "d", "e"};
List<String> list = CollUtil.newArrayList(array);
//join:数组转字符串时添加连接符号
String joinStr = CollUtil.join(list, ",");
LOGGER.info("collUtil join:{}", joinStr);
//将以连接符号分隔的字符串再转换为列表
List<String> splitList = StrUtil.split(joinStr, ',');
LOGGER.info("collUtil split:{}", splitList);
//创建新的Map、Set、List
HashMap<Object, Object> newMap = CollUtil.newHashMap();
HashSet<Object> newHashSet = CollUtil.newHashSet();
ArrayList<Object> newList = CollUtil.newArrayList();
//判断列表是否为空
CollUtil.isEmpty(list);

到了这里,关于HuTool工具类常用方法汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于hutool的MD5加密以及hutool的一些常用工具

    直接上干货! 第一步:添加依赖 maven 在项目的pom.xml的dependencies中加入以下内容: 如果不是maven项目,需要去官网下载jar包,安装到项目中, hutool官网:hutool官网地址 第二步:使用 第一种:String encode = DigestUtil.md5Hex(“abcdefg”); 第二种:String encode =SecureUtil.md5(“abcdefg”); 其它

    2024年03月27日
    浏览(34)
  • 常用工具类之使用hutool生成验证码

    1.1 pom文件中导入hutool-captcha依赖 💬 新建springboot项目,并在其pom.xml中导入hutool-captcha依赖: 1.2 创建前端页面与跳转页面 前端页面index.html 跳转页面success.html 1.3 实现后端代码 1.3.1 创建后端控制类生成验证码 💬 创建控制类CommonController类,一方面通过流的方式将随机生成的验

    2024年02月04日
    浏览(32)
  • 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 参考文档地址 )

    Android Plugin DSL Reference 参考文档 : 文档主页 :  Android Plugin 2.3.0 DSL Reference android 模块配置文档 :  AppExtension - Android Plugin 2.3.0 DSL Reference ProductFlavor 文档 :  ProductFlavor - Android Plugin 2.3.0 DSL Reference 上一篇博客介绍了 Extension 扩展类型 , AppExtension 下文档参考 AppExtension - Android Plug

    2024年02月03日
    浏览(31)
  • cn.hutool.http.HttpUtil类get方法不支持获取重定向地址(避坑)

    问题 工作中场景需要通过获取url地址内容,展示返回给客户端,但上线后发现不满足需求,原因是url地址进行302重定向, 进一步了解是因为HttpUtil.get方法不能获取重定向地址,需要使用HttpUtil.createGet()来设置打开重定; 理解302: 302 表示临时性重定向,访问一个Url时,被重定

    2024年02月01日
    浏览(27)
  • Hutool.DateUtil时间工具方法解析

    1.依赖引入: dependency         groupIdcn.hutool/groupId         artifactIdhutool-core/artifactId         version5.6.5/version /dependency 2.方法解析: parse可以识别到一些时间的常用格式: /*yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm:ss yyyy-MM-dd HH:mm yyyy-MM-dd HH:mm:ss SSS*/  1字符串与日期(Date)的相互转换: DateUt

    2024年02月06日
    浏览(33)
  • Hutool工具类实现的简易excel文件导出方法

    工作中遇到的小坑,记录一下 Hutool的官方文档有给出详细的excel文件导出工具类( ExcelWriter ),然而实际使用中,有些地方容易踩坑,记录一下方便对照。 首先是SpringBoot的后端,我用的是写出到客户端下载的方式,输入需要的年份year和月份month,HttpServletResponse也是必须的。

    2024年02月07日
    浏览(53)
  • 使用HuTool的Http工具发送post传递中文参数,请求会乱码的解决方法

    Hutool 是一款功能丰富、易用的Java工具类库,我们在工作中经常会使用它的各种类库方法简化我们的开发,其中我们甚至能通过它的Http工具类直接发送http的各种请求,下面来介绍一下发送post请求时参数中有中文出现乱码的解决方法。 这样就不会造成请求参数出现乱码问题

    2024年02月01日
    浏览(30)
  • 【SpringBoot】SpringBoot引入接口文档生成工具(Swagger+Knife4j)

    由于目前工作项目写的接口越来越多了,为了能够更加方便地优化接口,以及整理接口文档,所以就考虑引入接口文档生成工具。目前的接口文档生成工具被提及较多的是Swagger,经过了引入尝试后,Swagger是比较轻松地就被引入了。但是Swagger页面属实是难以恭维,比较简单但

    2024年01月23日
    浏览(31)
  • 常用测试工具汇总

    目录 1.Web页面检查器 2.客户端-代理抓包 3.自动化测试工具 3.1接口自动化测试 3.2webUI自动化测试 3.3客户端UI自动化测试 4.手机模拟器测试工具 5.阿里云测试工具 F12查看html页面,查看页面大小和加载时间 Charles:PC版/ios客户端 Fiddler:PC版/android客户端/ios客户端 httpcanary:androi

    2024年02月15日
    浏览(25)
  • 产品经理常用工具汇总

    英文名称 中文名称 描述 Axure 原型 原型图,流程图,框架图,原型图; Axhub 团队原型共享 Axure原型团队共享,链接转发; iconfont 阿里矢量图标 图标下载,协助原型和方案; visio 流程图  业务流程图,泳道图编写; OBS 录屏 录屏工具 EV录屏 EV录屏 录屏工具 腾讯文档 腾讯文

    2024年04月24日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包