本文主要是介绍Hutool使用指南(一):时间日期工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
阅读本篇文章大约花费5~6分钟!
从今天开始,持续为大家介绍一款超厉害的国产Java工具——Hutool。Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。适用于很多项目以及Web开发,并且与其他框架没有耦合性。
话不多说,今天首先介绍Hutool中的时间日期相关操作。
时间日期类介绍
- DateUtil 针对日期时间操作提供一系列静态方法
- DateTime 提供类似于Joda-Time中日期时间对象的封装,继承Date
- FastDateFormat 提供线程安全的针对Date对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已封装在DateUtil和DateTime的相关方法中。
- DateBetween 计算两个时间间隔的类,除了通过构造新对象使用外,相关操作也已封装在DateUtil和DateTime的相关方法中。
- TimeInterval 一个简单的计时器类,常用于计算某段代码的执行时间,提供包括毫秒、秒、分、时、天、周等各种单位的花费时长计算,对象的静态构造已封装在DateUtil中。
- DatePattern 提供常用的日期格式化模式,包括String和FastDateFormat两种类型。
个人觉得主要需要了解DateUtil类,DateTime类以及DatePattern类就可以应对大多数时间日期的操作了。下面我们依次来看吧!
DateUtil
首先要说明DateUtil中都是静态方法,方便调用,先来看一些实用的方法吧!
一些简单方法
一些简单方法 | |
now():String | 当前日期时间 yyyy-MM-dd hh:mm:ss |
today():String | 今天日期 yyyy-MM-dd |
currentSeconds():long | 毫秒数 |
thisYear():int | 年份 |
thisMonth():int | 月份(从0开始) |
thisWeekOfMonth():int | 本月周次(从1开始) |
thisWeekOfYear():int | 本年周次(从1开始) |
thisDayOfMonth():int | 本月第几天(从1开始) |
thisDayOfWeek():int | 本周第几天(从1开始) |
thisHour(boolean is24HourClock):int | 当前小时 |
thisMinute():int | 当前分 |
thisSecond():int | 当前秒 |
lastWeek():DateTime | 上周今天(往前7天) |
lastMonth():DateTime | 上个月今天(往前一个月) |
nextWeek():DateTime | 下周今天(往后7天) |
nextMonth():DateTime | 下个月今天(往后一个月) |
yesterday():DateTime | 昨天同时 |
tomorrow():DateTime | 明天同时 |
这些方法都很简单,相信大家了解一下就可以在项目中使用了!
格式化时间日期
Hutool可以很方便的将一些固定格式的字符串转化为Date对象:
- yyyy-MM-dd hh:mm:ss
- yyyy-MM-dd
- hh:mm:ss
- yyyy-MM-dd hh:mm
将这些字符串转为Date对象使用DateUtil.parse()方法。同时也可以转换为指定格式的Date对象:
String dateTime1="2018-02-18 20:53:45";
String dateTime2="2018-02-18";
String dateTime3="20:53:45";
String dateTime4="2018-02-18 20:53";//将不同的格式转换为Date对象
Date date1=DateUtil.parse(dateTime1);
System.out.println("date1:"+date1.toString());
Date date2=DateUtil.parse(dateTime2);
System.out.println("date2:"+date2.toString());
Date date3=DateUtil.parse(dateTime3);
System.out.println("date3:"+date3.toString());
Date date4=DateUtil.parse(dateTime4);
System.out.println("date4:"+date4.toString());//使用DateUtil.parse(String,String):Date 转换为指定格式的Date对象
Date date5=DateUtil.parse(dateTime1, "yyyy-MM-dd");
System.out.println("date5:"+date5.toString());
一般更常用的是我们需要将日期时间格式化输出,Hutool提供了一些方法实现:
- 使用DateUtil.formatDateTime(Date date):String 将返回“yyyy-MM-dd hh:mm:ss”格式字符串
- 使用DateUtil.formatDate(Date date):String 将返回“yyyy-MM-dd“格式字符串
- 使用DateUtil.formatTime(Date date):String将返回“hh:mm:ss“格式字符串
- 使用DateUtil.format(Date,String):String 将返回指定格式的字符串
开始和结束时间
Hutool可以很方便的获得某天/某月/某年的开始时刻和结束时刻:
beginOfDay(Date):Date | 一天开始时刻 |
endOfDay(Date):Date | 一天结束时刻 |
beginOfMonth(Date):Date | … |
endOfMonth(Date):Date | … |
beginOfYear(Date):Date | … |
endOfYear(Date):Date | … |
时间间隔
Hutool可以方便的计算时间间隔,使用DateUtil.between(Date begin,Date end,DateUnit):long计算间隔,方法有三个参数,前两个分别是开始时间和结束时间,第三个参数是DateUnit的枚举,表示差值以什么为单位。
DateUnit的取值可以是DateUnit.DAY(天),DateUnit.HOUR(小时),DateUnit.WEEK(周),DateUnit.SECOND(秒),DateUnit.MINUTE(分钟);
我们也可以将差值转为指定具体的格式,比如 XX天XX小时XX分钟XX秒 这样的格式,可以使用DateUtil.formatBetween(Date begin,Date end,Level):String 方法,有三个参数,前两个依然是开始和结束时间,第三个参数表示精确度,比如Level.SECOND表示精确到秒,即XX天XX小时XX分钟XX秒的格式。
计算年龄
用了Hutool可以瞬间计算年龄,你还需要担心什么虚岁周岁吗?不需要,Hutool说多少就是多少。我们可以使用如下方法:
年龄 | |
age(Date begin,Date end):int | 出生和去世日期计算年龄 |
ageOfNow(String birthday):int | 计算到当前日期的年龄 |
ageOfNow(Date birthday):int | 计算到当前日期的年龄 |
判断闰年
使用DateUtil.isLeapYear(in year):boolean判断是否为闰年。
DateTime
了解了DateUtil,再来看DateTime应该是很简单的,因为DateTime里面的大多数方法和DateUtil是类似的。DateTime类继承自java.util.Date,完全可以替代Date的使用并且还有其他的实用方法!何乐而不为!
首先来了解一下DateTime的构造方法:
- 方法一:使用new
DateTime dt=new DateTime(); //创建当前时刻
DateTime dt=new DateTime(Date date); //使用Date对象构造
DateTime dt=new DateTime(long timeMillis); //使用毫秒数构造
- 方法二:使用of()方法
DateTime dt=DateTime.of();
- 使用now()方法
DateTime dt=DateTime.now(); //创建当前时刻
DateTime里面还有两个非常实用的方法,就是before(Date when):boolean 和 after(Date when):boolean,它们可以判断时间的先后。
DatePattern
最后了解一下DatePattern类,这个类主要是提供了一些指定的时间日期格式(都是String类型),包括地区的区别表示:
格式化模板 | |
DatePattern.CHINESE_DATE_PATTERN | yyyy年MM月dd日 |
DatePattern.NORM_DATE_PATTERN | yyyy-MM-dd |
DatePattern.NORM_TIME_PATTERN | HH:mm:ss |
DatePattern.NORM_DATETIME_PATTERN | yyyy-MM-dd HH:mm:ss |
DatePattern.UTC_PATTERN | yyyy-MM-dd'T'HH:mm:ss'Z' |
DatePattern.PURE_DATE_PATTERN | yyyyMMdd |
DatePattern.PURE_TIME_PATTERN | HHmmss |
DatePattern.PURE_DATETIME_PATTERN | yyyyMMddHHmmss |
好了,Hutool的第一个工具就了解到这里,我也是在慢慢学习这个工具,以后会持续和大家分享Hutool的使用指南!
正值开学季,在这里各位学生学业有成!已经工作的小伙伴们,工作顺利,新年长新发!
这篇关于Hutool使用指南(一):时间日期工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!