java常用工具

2021-04-15 00:28

阅读:367

标签:muti   ati   mem   不可   系统版本   字符串日期   removes   group   new   

1.Lombok

1.1坐标

     org.projectlombok
            lombok
            1.16.18provided

1.2注解

以下注解都使用在类上,用法如下:

注解 说明
@Getter 生成get方法
@Setter 生成set方法
@ToString 生成toString方法
@Data

生成get、set、toString、equals等方法

@NoArgsConstructor 生成无参构造
@AllArgsConstructor 生成全参构造器

@Accessors(chain = true)

set方法是否开启链式调用,为true时开启

@Slf4j

注解在类,生成log变量,严格意义来说是常量

1.3idea配置

在idea中安装插件,

 技术图片

配置注解生效

技术图片

2.Hutool

官网:https://www.hutool.cn/docs/#/

2.1坐标

  cn.hutool
      hutool-all
      5.3.9

2.2Convert类型转换

1)Integer转String

Integer a=1;
String str = Convert.toStr(a);

2)String日期转Date

 String time1="2020-05-12";
 String time2="2020/06/15 00:20:20";
 Date date = Convert.toDate(time1);
 Date date2 = Convert.toDate(time2);

字符串日期在转的时候,并没有指定格式,但是可以快速的转换。

3)数组转集合

 String arr[]={"1","233","张三"};
 List> list = Convert.toList(arr);

2.3DateUitl(日期时间)   

1)获取当前的时间date,格式:yyyy-MM-dd HH:mm:ss

Date date = DateUtil.date();
       
Date date2 = DateUtil.date(Calendar.getInstance());
       
Date date3 = DateUtil.date(System.currentTimeMillis());

以上三种方式都可以获取格式化的date时间

2)获取当前时间的字符串

//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

 3)日期字符串转日期

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
String dateStr2 = "2017/03/01 23:20:23";
Date date2 = DateUtil.parse(dateStr2);
Date date3 = DateUtil.parse(dateStr2, "yyyy-MM-dd");

4)格式化日期为字符串

Date date = DateUtil.date();

String format = DateUtil.format(date, "yyyy/MM/dd");//结果:2020/07/16

String formatDate = DateUtil.formatDate(date);//结果:2020-07-16

String formatDateTime = DateUtil.formatDateTime(date);//结果:2020-07-16 20:22:54

String formatTime = DateUtil.formatTime(date);//结果:20:22:54

5)获取date的一部分

Date date = DateUtil.date();
//获得年的部分
int year = DateUtil.year(date);
//获得月份,从0开始计数
int month = DateUtil.month(date)+1;

6)获取某天/某月的开始或结束时间

String dateStr = "2017-03-01";
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);

//一月的开始,结果:2017-03-01 00:00:00
Date beginOfMonth = DateUtil.beginOfMonth(date);

//一月的结束,结果:2017-03-31 23:59:59
Date endOfMonth = DateUtil.endOfMonth(date);

7)时间偏移(向前或向后)

String dateStr = "2017-03-01 22:33:23";
Date date = DateUtil.parse(dateStr);

//获取三个小时前的时间,结果:2017-03-01 19:33:23
Date newDate = DateUtil.offsetHour(date, -3);
//获取三天后的时间,结果:2017-03-04 22:33:23
Date newDate2 = DateUtil.offsetDay(date, 3);
//获取三天前的时间,结果:2017-03-04 22:33:23
Date newDate3 = DateUtil.offsetDay(date, -3);

//昨天
Date yesterday = DateUtil.yesterday();
//明天
Date tomorrow = DateUtil.tomorrow();
//上周
Date Date = DateUtil.lastWeek();
//下周
Date Date1 = DateUtil.nextWeek();
//上个月
Date Date2 = DateUtil.lastMonth();
//下个月
Date Date3 = DateUtil.nextMonth();

8)日期时间差

String dateStr1 = "2017-03-01 22:33:23";
Date date1 = DateUtil.parse(dateStr1);
String dateStr2 = "2017-05-01 23:33:23";
Date date2 = DateUtil.parse(dateStr2);
String dateStr3 = "2017-03-02 20:23:35";
Date date3 = DateUtil.parse(dateStr3);

//两个时间段相差的天数
long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);
//两个时间段相差的小时
long betweenHour = DateUtil.between(date1, date3, DateUnit.HOUR);

//格式化时间差,精确到分
String s = DateUtil.formatBetween(betweenDay, BetweenFormater.Level.MINUTE);

9)其他

 //年龄
int age = DateUtil.ageOfNow("1990-01-30");

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

2.4StrUtil(字符串工具)

1)isBlank、isNotBlank

isBlank判断字符串是否为NULL或空串(不可见字符也算做空)是则返回true,否则返回false。isNotBlank相反。

String s=null;
String s1="";

boolean b3 = StrUtil.isNotBlank(s);//false
boolean b4 = StrUtil.isBlank(s1);//true

isEmptyisNotEmpty也是判断字符串是否为空的,分别对应isBlank、isNotBlank,只是它不会去判断不可见字符。

2)hasBlank、hasEmpty

hasBlank与isBlank用法相同,不同点是它是来判断字符串序列的,如字符串数组。普通的字符串也是可以判断的。

String s=null;
String s1="";
String add[]={"a","b",""};

boolean b = StrUtil.hasBlank(s);//true
boolean b1 = StrUtil.hasBlank(s1);//true
boolean b2 = StrUtil.hasBlank(add);//true

3)removePrefix、removePrefix

作用是去掉字符的前缀和后缀。removeSuffixIgnoreCase和removePrefixIgnoreCase是其对应的忽略大小写的方法。

String f="abc.png";
//去掉图片名的后缀
String suffix = StrUtil.removePrefix(f, ".png");

4)sub

字符串的截取,优势在于索引越界也不会抛异常,索引也支持负数,索引位置可以自动修正。

String str = "abcdefghfs";
String strSub1 = StrUtil.sub(str, 2, 3); // c
String strSub2 = StrUtil.sub(str, 3, 2); //c,原因是它可以把这个错误的索引修改为2,3
String strSub3 = StrUtil.sub(str, 2, -3); //cdefg
String strSub4 = StrUtil.sub(str, 4, -1); //efghf

5)format

字符串模板代替字符串拼接

 //定义模板,类似于slf4j
String template = "{}爱你,就像老鼠爱{}";
//使用模板,代替字符串拼接
String str = StrUtil.format(template, "", "大米"); //我爱你,就像老鼠爱大米

2.5SecureUtil(加密工具)

1)md5加密

String aa="123456";
String s = SecureUtil.md5(aa);

2)生成不含-的UUID

String s = SecureUtil.simpleUUID();

2.6SystemUtil(系统信息)

//获取系统信息,包含系统版本等
OsInfo osInfo = SystemUtil.getOsInfo();
//获取主机网络地址信息,包含主机名和ip
HostInfo hostInfo = SystemUtil.getHostInfo();

 

3.fastjson

1)toJSONString

把对象转为json字符串

JSON.toJSONString(Object);

2)parseObject

把json字符串转为对象

JSON.parseObject(jsonStr, Object.class);

 

java常用工具

标签:muti   ati   mem   不可   系统版本   字符串日期   removes   group   new   

原文地址:https://www.cnblogs.com/zys2019/p/13323889.html


评论


亲,登录后才可以留言!