官网
https://hutool.cn/docs/#/https://hutool.cn/docs/#/)
入门和安装 - 《Hutool v4.5.15 参考文档》 - 书栈网 · BookStack
Java Bean
Bean工具-BeanUtil
ID 生成器
雪花算法
1 2 3 4
| import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil;
String id = IdUtil.getSnowflake(1,1).nextIdStr();
|
反射工具-ReflectUtil
给对象属性赋值
属性可以是当前类的属性,也可以是父类的属性
1
| ReflectUtil.setFieldValue(event, "intro", "123");
|
根据 Bean 对象和成员变量名,获取变量值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| GbLatzs gbLatzs = new GbLatzs(); gbLatzs.setId("123"); gbLatzs.setEventid("sdfasdf"); gbLatzs.setOrderNum(123);
String id = (String) ReflectUtil.getFieldValue(gbLatzs, "id"); String eventid = (String) ReflectUtil.getFieldValue(gbLatzs, "eventid"); Integer orderNum = (Integer) ReflectUtil.getFieldValue(gbLatzs, "orderNum"); System.out.println("id=" + id); System.out.println("eventid=" + eventid); System.out.println("orderNum=" + orderNum);
Map<String, Object> params = new HashMap<>(); if(ReflectUtil.hasField(event.getClass(), ActivitiConstant.FORM_VARIABLE_MONITOR) && StrUtil.isNotBlank(event.getMonitor())) { params.put(ActivitiConstant.FORM_VARIABLE_MONITOR, event.getMonitor()); }
|
日期
当前日期
1
| DateTime now = DateUtil.beginOfDay(DateUtil.date());
|
当前年份
1 2 3 4
| int nowYear = DateUtil.year(new Date());
int year = DateUtil.thisYear();
|
当前月份
1 2 3 4 5
| int currentMonth = DateUtil.month(new Date()) + 1; System.out.println("当前月份: " + currentMonth);
int month = DateUtil.thisMonth() + 1;
|
DateTime转String
1 2 3
| import cn.hutool.core.date.DateUtil;
DateUtil.formatDateTime(miniappEventUser.getCreateTime())
|
String转DateTime
1 2 3 4 5 6 7 8 9 10 11
| import cn.hutool.core.date.DateUtil;
String d = "2020-12-03 20:41:13";
System.out.println(DateUtil.parseDate(d));
System.out.println(DateUtil.parse(d)); System.out.println(DateUtil.parseDateTime(d));
|
日期转时间戳
1 2 3 4 5
| import cn.hutool.core.date.DateUtil;
String d = "2020-12-03 20:41:13"; System.out.println(DateUtil.parse(d).getTime());
|
时间戳转时间
1 2 3 4 5 6 7 8
| Long time = 1677294413773L; System.out.println(DateUtil.date(time));
long betweenSecond = DateUtil.between(DateUtil.date(), DateUtil.date(time), DateUnit.SECOND); System.out.println(betweenSecond);
|
日期间隔秒数
1 2 3 4 5 6 7
| Long time = 1677294413773L; long betweenSecond = DateUtil.between(DateUtil.date(), DateUtil.date(time), DateUnit.SECOND); System.out.println(betweenSecond);
DateUtil.between(DateUtil.date(), DateUtil.parse(limitTime), DateUnit.SECOND);
|
比较 2 个日期
1 2
| DateUtil.compare(DateUtil.date(), DateUtil.parse(limitTime)) > 0;
|
判断日期是否在指定2个日期之间
1 2
| DateTime now = DateUtil.date(); boolean in = DateUtil.isIn(now, startDateTime, endDateTime);
|
日期加减
1 2 3 4 5 6
| Date limitTime = actZEventTaskTimeoutDeal.getLimitTime();
Date warnDateTime = DateUtil.offsetHour(limitTime, 10);
Date warnDateTime = DateUtil.offsetDay(limitTime, -10);
|
身份证号
1 2 3 4 5 6 7 8 9 10 11
| import cn.hutool.core.util.IdcardUtil;
int age = IdcardUtil.getAgeByIdCard(idCard);
String gender = IdcardUtil.getGenderByIdCard(idCard);
String birth = IdcardUtil.getBirthByIdCard(idCard);
|
中文分词
中文分词封装-TokenizerUtil (hutool.cn)
线程池 ExecutorService
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| ExecutorService executor = ExecutorBuilder.create() .setCorePoolSize(5) .setMaxPoolSize(5) .build();
long start = System.currentTimeMillis(); Set<Long> threadIds = new HashSet<Long>(); for (int i = 0; i < 100; i++) { int index = i; executor.submit(()->{ long id = Thread.currentThread().getId(); threadIds.add(id); System.out.println("大家好,我的任务编号是:" + index + " thread-Id:" + id); }); }
executor.shutdown();
try { executor.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES); System.out.println(threadIds);
long end = System.currentTimeMillis(); System.out.println("耗时:" + (end-start) + "ms"); } catch (InterruptedException e) { e.printStackTrace(); }
|
比较工具-CompareUtil
1 2 3 4
| int compare = CompareUtil.compare(null, "a", true);
int compare = CompareUtil.compare(null, "a", false);
|
DB数据库操作
概述 | Hutool
1 2 3 4 5 6 7 8 9 10 11
| DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) SpringContextUtils.getApplicationContext().getBean(DataSource.class);
DataSource datasource = dynamicRoutingDataSource.determineDataSource();
Connection connection = datasource.getConnection();
List<Entity> entityList = SqlExecutor.query(connection, "select * from " + tableName + " where id = ?", new EntityListHandler(), id);
int count = SqlExecutor.execute(connection, "insert into "+ CommonConstant.DATA_TRASH_TABLE_NAME + "(id, create_by, create_time, data_id, data_content, insert_sql) values (?,?,?,?,?,?)", trash_data_id, username, DateUtils.now(), id, dataContent, insert_sql);
|
BeanUtil
cn.hutool.core.bean.BeanUtil
对象拷贝,忽略指定字段
1
| BeanUtil.copyProperties(sourceObj, targetObj, "id", "createBy", "createTime","updateBy","sysOrgCode","updateTime");
|
IoUtil
1 2 3 4 5
| IoUtil.write(response.getOutputStream(), true, exportBytes);
byte[] bytes = IOUtils.toByteArray(inputStream);
|
CreditCodeUtil - 统一社会信用代码工具类
HttpUtil 请求工具
1 2 3 4 5 6
| try { HttpUtil.downloadFile("https://picx.zhimg.com/v2-c8099804ebfcabdc6cd3f99373c35c2e_r.jpg?source=1def8aca", new File("/Users/wangwz/Downloads/1.jpg"), 100); } catch (Exception e) { System.out.println(e.getMessage()); }
|