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、转换为指定类型数组:
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);
3、转换为日期对象:
String a = "2017-05-06";
Date value = Convert.toDate(a);
4、转换为集合
Object[] a = {"a", "你", "好", "", 1};
List<?> list = Convert.convert(List.class, a);
//从4.1.11开始可以这么用
List<?> list = Convert.toList(a);
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();
2. 字符串转日期
DateUtil.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
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);
3. 开始和结束时间
有的时候我们需要获得每天的开始时间、结束时间,每月的开始和结束时间等等,DateUtil也提供了相关方法:
- 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);
4. 日期时间偏移
日期或时间的偏移指针对某个日期增加或减少分、小时、天等等,达到日期变更的目的。Hutool也针对其做了大量封装
- 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()
5. 日期时间差
有时候我们需要计算两个日期之间的时间差(相差天数、相差小时数等等),Hutool将此类方法封装为between方法:
- 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);