HuTool
简介
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。来自官方文档
安装
maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.7</version>
</dependency>
maven中央仓库:https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.3.7/
类型转换工具类Convert
(官方文档)
//int转String,数组转String
int i = 1;
String aStr = Convert.toStr(i);
System.out.println("aStr:"+aStr);//输入结果:1
long[] l = {1,2,4,3,5};
String lStr = Convert.toStr(l);
System.out.println("lStr:"+lStr);//输入结果:[1, 2, 4, 3, 5]
//String数组转Integer数组
String[] s = {"1","2","3","5","5"};
Integer[] sIntArray = Convert.toIntArray(s);//转换为Integer数组
for (Integer integer : sIntArray) {
System.out.println("integer:"+integer);
}
//String转日期
String d = "2020-06-01";
Date date = Convert.toDate(d);
System.out.println("date:"+date);
System.out.println(Convert.toLocalDateTime(date));
}
日期时间工具-DateUtil
(官方文档)
-
DateUtil.date()
:获取当前时间Date date = DateUtil.date(); System.out.println("date:"+date);//当前时间date:2020-06-14 17:14:48
-
DateUtil.now()
:获取当前时间格式:yyyy-MM-dd HH:mm:ssString now = DateUtil.now(); System.out.println("now:"+now);//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss now:2020-06-14 17:14:48
-
DateUtil.today()
:获取当前时间格式yyyy-MM-ddString today= DateUtil.today(); System.out.println("today:"+today);//当前日期字符串,格式:yyyy-MM-dd today:2020-06-14
-
LocalDateTime toLocalDateTime(Date date)
:Date 转换为 LocalDateTimeSystem.out.println("Date 转换为 LocalDateTime,使用系统默认时区"+DateUtil.toLocalDateTime(new Date())); //Date 转换为 LocalDateTime,使用系统默认时区2020-06-14T17:22:08.009
-
我们按着Ctrl点击DateUtil进入源码会发现里面封装了很多的时间转换方法
-
在测试一个计算星座
getZodiac(int month, int day)
System.out.println(DateUtil.getZodiac(11, 15));
结果:
当然里面还有很多实用的方法:
- 获取时间对象的某个部分
- 开始时间和结束时间
- 时间的偏移(先前推多长时间向后推多长时间)
- 。。。。
当然我们在开发中会遇到很多的String转时间的情况这个时候我们就可以用到DateUtil.parse
上面的Date toDate
和这里的DateUtil.parse
都可以转换时间格式
-
Date toDate
/** * 转换为Date<br> * 如果给定的值为空,或者转换失败,返回<code>null</code><br> * 转换失败不会报错 * * @param value 被转换的值 * @return 结果 * @since 4.1.6 */ public static Date toDate(Object value) { return toDate(value, null); }
-
DateUtil.parse
/** * 将日期字符串转换为{@link DateTime}对象,格式:<br> * <ol> * <li>yyyy-MM-dd HH:mm:ss</li> * <li>yyyy/MM/dd HH:mm:ss</li> * <li>yyyy.MM.dd HH:mm:ss</li> * <li>yyyy年MM月dd日 HH时mm分ss秒</li> * <li>yyyy-MM-dd</li> * <li>yyyy/MM/dd</li> * <li>yyyy.MM.dd</li> * <li>HH:mm:ss</li> * <li>HH时mm分ss秒</li> * <li>yyyy-MM-dd HH:mm</li> * <li>yyyy-MM-dd HH:mm:ss.SSS</li> * <li>yyyyMMddHHmmss</li> * <li>yyyyMMddHHmmssSSS</li> * <li>yyyyMMdd</li> * <li>EEE, dd MMM yyyy HH:mm:ss z</li> * <li>EEE MMM dd HH:mm:ss zzz yyyy</li> * <li>yyyy-MM-dd'T'HH:mm:ss'Z'</li> * <li>yyyy-MM-dd'T'HH:mm:ss.SSS'Z'</li> * <li>yyyy-MM-dd'T'HH:mm:ssZ</li> * <li>yyyy-MM-dd'T'HH:mm:ss.SSSZ</li> * </ol> * * @param dateCharSequence 日期字符串 * @return 日期 */ public static DateTime parse(CharSequence dateCharSequence) {
对比源码中的代码就可以发现Date.toDate之能进行一些单一的时间类型转换,而DateUtil.parse则支持大多数的时间格式的转换
以上是本人的粗略介绍如有不对或者思想偏差,欢迎大家指正评论第一时间修改回复