hutool的DateUtil工具類


1.0、DateUitl(日期時間)

0)坐標

<dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.3.9</version>
    </dependency>

 

1)date方法獲取當前Date類型的日期時間(格式:yyyy-MM-dd HH:mm:ss)

Date date = DateUtil.date(); // 2020-09-14 10:27:06
// Calendar類型轉Date類型       
Date date2 = DateUtil.date(Calendar.getInstance()); // 2020-09-14 10:27:07
// 毫秒值轉Date類型
Date date3 = DateUtil.date(System.currentTimeMillis()); // 2020-09-14 10:27:07

以上三種方式都可以獲取格式化的date時間

2)now方法獲取當前字符串類型的日期時間

//當前時間字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now(); // 2020-09-14 10:22:46
//當前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today(); // 2020-09-14

3)parse方法將字符串類型日期解析為Date類型日期

// 將字符串格式的日期解析成Date格式
String dateStr = "2017-03-01"; // 2017-03-01 00:00:00 Date date = DateUtil.parse(dateStr);
// 將字符串格式的日期解析成Date格式
String dateStr2 = "2017-03-01 23:20:23";
Date date2
= DateUtil.parse(dateStr2); // 2017-03-01 23:20:23
// 將字符串格式的日期解析成指定的Date格式
Date date3 = DateUtil.parse(dateStr2, "yyyy-MM-dd"); // 2017-03-01 00:00:00
 

 

4)format方法將字符串類型日期格式化為字符串類型日期

// 當前Date格式時間
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)year方法和month方法獲取Date類型日期的年份和月份

Date date = DateUtil.date();
//獲得年的部分
int year = DateUtil.year(date);
//獲得月份,從0開始計數
int month = DateUtil.month(date)+1;

6)beginOfDay方法和endOfMonth方法獲取某天/某月的開始或結束時間

Date date = DateUtil.date();
//一天的開始,結果: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);

項目中代碼使用:在項目中,前端傳遞一個對象{date:['2020-10-07','2020-11-07']}(對象張有數組元素,數組中包含開始日期和結束日期)到后台,后台用字符串String('2020-10-07','2020-11-07')接收,對字符串用逗號分割之后,再使用beginOfDay和endOfDay獲取開始日期的開始時間和結束日期的結束時間。

public Result getList(String date) {
        Date now = null;
        Date last = null;
        String split[] = date.split(",");//獲取查詢日期的開始時間,00:00:00
        last = DateUtil.beginOfDay(DateUtil.parse(split[0]));
        //獲取查詢日期的結束時間,23:59:59
        now = DateUtil.endOfDay(DateUtil.parse(split[1]));
       。。。。。
}

7)offsetHour方法和offsetDay方法獲取時間偏移(向前或向后)

Date date = DateUtil.date();
//獲取三個小時前的時間,結果:2017-03-01 19:33:23
Date newDate = DateUtil.offsetHour(date, -3);
//獲取三個小時后的時間
Date date = 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)between方法獲取日期天數差和小時差

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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM