常用工具类系列之DateUtil
生活随笔
收集整理的這篇文章主要介紹了
常用工具类系列之DateUtil
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Date、long、Calendar之間的相互轉(zhuǎn)換
//當(dāng)前時(shí)間 Date date = DateUtil.date(); //當(dāng)前時(shí)間 Date date2 = DateUtil.date(Calendar.getInstance()); //當(dāng)前時(shí)間 Date date3 = DateUtil.date(System.currentTimeMillis()); //當(dāng)前時(shí)間字符串,格式:yyyy-MM-dd HH:mm:ss String now = DateUtil.now(); //當(dāng)前日期字符串,格式:yyyy-MM-dd String today= DateUtil.today();字符串轉(zhuǎn)日期
DateUtil.parse方法會(huì)自動(dòng)識(shí)別一些常用格式,包括:
我們也可以使用自定義日期格式轉(zhuǎn)化:
String dateStr = "2017-03-01"; Date date = DateUtil.parse(dateStr, "yyyy-MM-dd");格式化日期輸出
String dateStr = "2017-03-01"; Date date = DateUtil.parse(dateStr);String format = DateUtil.format(date, "yyyy/MM/dd"); Assert.assertEquals("2017/03/01", format); //常用格式的格式化 String formatDate = DateUtil.formatDate(date); Assert.assertEquals("2017-03-01", formatDate); String formatDateTime = DateUtil.formatDateTime(date); Assert.assertEquals("2017-03-01 00:00:00", formatDateTime); String formatTime = DateUtil.formatTime(date); Assert.assertEquals("00:00:00", formatTime);獲取Date對(duì)象的某個(gè)部分
Date date = DateUtil.date(); //獲得年的部分 DateUtil.year(date); //獲得月份,從0開始計(jì)數(shù) DateUtil.month(date); //獲得月份枚舉 DateUtil.monthEnum(date); //.....開始和結(jié)束時(shí)間
有的時(shí)候我們需要獲得每天的開始時(shí)間、結(jié)束時(shí)間,每月的開始和結(jié)束時(shí)間等等,DateUtil也提供了相關(guān)方法:
String dateStr = "2017-03-01 22:33:23"; Date date = DateUtil.parse(dateStr); //一天的開始 Date beginOfDay = DateUtil.beginOfDay(date); Assert.assertEquals("2017-03-01 00:00:00", beginOfDay.toString()); //一天的結(jié)束 Date endOfDay = DateUtil.endOfDay(date); Assert.assertEquals("2017-03-01 23:59:59", endOfDay.toString());日期時(shí)間偏移
日期或時(shí)間的偏移指針對(duì)某個(gè)日期增加或減少分、小時(shí)、天等等,達(dá)到日期變更的目的。Hutool也針對(duì)其做了大量封裝
String dateStr = "2017-03-01 22:33:23"; Date date = DateUtil.parse(dateStr);Date newDate = DateUtil.offset(date, DateField.DAY_OF_MONTH, 2); Assert.assertEquals("2017-03-03 22:33:23", newDate.toString()); //常用偏移 DateTime newDate2 = DateUtil.offsetDay(date, 3); Assert.assertEquals("2017-03-04 22:33:23", newDate2.toString()); //常用偏移 DateTime newDate3 = DateUtil.offsetHour(date, -3); Assert.assertEquals("2017-03-01 19:33:23", newDate3.toString());針對(duì)當(dāng)前時(shí)間,提供了簡化的偏移方法(例如昨天、上周、上個(gè)月等):
//昨天 DateUtil.yesterday() //明天 DateUtil.tomorrow() //上周 DateUtil.lastWeek() //下周 DateUtil.nextWeek() //上個(gè)月 DateUtil.lastMonth() //下個(gè)月 DateUtil.nextMonth()日期時(shí)間差
有時(shí)候我們需要計(jì)算兩個(gè)日期之間的時(shí)間差(相差天數(shù)、相差小時(shí)數(shù)等等),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); long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY); Assert.assertEquals(31, betweenDay);//相差一個(gè)月,31天格式化時(shí)間差
有時(shí)候我們希望看到易讀的時(shí)間差,比如XX天XX小時(shí)XX分XX秒,此時(shí)使用DateUtil.formatBetween方法:
//Level.MINUTE表示精確到分 String formatBetween = DateUtil.formatBetween(between, Level.MINUTE); //輸出:31天1小時(shí) Console.log(formatBetween);計(jì)時(shí)器
計(jì)時(shí)器用于計(jì)算某段代碼或過程花費(fèi)的時(shí)間
TimeInterval timer = DateUtil.timer();//--------------------------------- //-------這是執(zhí)行過程 //---------------------------------timer.interval();//花費(fèi)毫秒數(shù) timer.intervalRestart();//返回花費(fèi)時(shí)間,并重置開始時(shí)間 timer.intervalMinute();//花費(fèi)分鐘數(shù)其它
//年齡 DateUtil.ageOfNow("1990-01-30");//是否閏年 DateUtil.isLeapYear(2017);?
轉(zhuǎn)載于:https://www.cnblogs.com/mr-wuxiansheng/p/7787296.html
總結(jié)
以上是生活随笔為你收集整理的常用工具类系列之DateUtil的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在html页面中引入公共的头部和底部
- 下一篇: [51nod] 1267 4个数和为0