1.0、DateUitl(日期时间)

0)坐标

  1. <dependency>
  2. <groupId>cn.hutool</groupId>
  3. <artifactId>hutool-all</artifactId>
  4. <version>5.3.9</version>
  5. </dependency>

1)date方法获取当前Date类型的日期时间(格式:yyyy-MM-dd HH:mm:ss)

  1. Date date = DateUtil.date(); // 2020-09-14 10:27:06
  2. // Calendar类型转Date类型
  3. Date date2 = DateUtil.date(Calendar.getInstance()); // 2020-09-14 10:27:07
  4. // 毫秒值转Date类型
  5. Date date3 = DateUtil.date(System.currentTimeMillis()); // 2020-09-14 10:27:07

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

2)now方法获取当前字符串类型的日期时间

  1. //当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
  2. String now = DateUtil.now(); // 2020-09-14 10:22:46
  3. //当前日期字符串,格式:yyyy-MM-dd
  4. String today= DateUtil.today(); // 2020-09-14

3)parse方法将字符串类型日期解析为Date类型日期

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

4)format方法将字符串类型日期格式化为字符串类型日期

  1. // 当前Date格式时间
    Date date = DateUtil.date();
  2. // 格式化为指定格式的字符串
  3. String format = DateUtil.format(date, "yyyy/MM/dd");//结果:2020/07/16
  4. // 格式化为日期格式字符串
  5. String formatDate = DateUtil.formatDate(date);//结果:2020-07-16
  6. // 格式化为日期时间格式字符串
  7. String formatDateTime = DateUtil.formatDateTime(date);//结果:2020-07-16 20:22:54
  8. // 格式化为时间格式字符串
  9. String formatTime = DateUtil.formatTime(date);//结果:20:22:54

5)year方法和month方法获取Date类型日期的年份和月份

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

6)beginOfDay方法和endOfMonth方法获取某天/某月的开始或结束时间

  1. Date date = DateUtil.date();
  2. //一天的开始,结果:2017-03-01 00:00:00
  3. Date beginOfDay = DateUtil.beginOfDay(date);
  4. //一天的结束,结果:2017-03-01 23:59:59
  5. Date endOfDay = DateUtil.endOfDay(date);
  6. //一月的开始,结果:2017-03-01 00:00:00
  7. Date beginOfMonth = DateUtil.beginOfMonth(date);
  8. //一月的结束,结果:2017-03-31 23:59:59
  9. Date endOfMonth = DateUtil.endOfMonth(date);

项目中代码使用:在项目中,前端传递一个对象{date:['2020-10-07','2020-11-07']}(对象张有数组元素,数组中包含开始日期和结束日期)到后台,后台用字符串String('2020-10-07','2020-11-07')接收,对字符串用逗号分割之后,再使用beginOfDay和endOfDay获取开始日期的开始时间和结束日期的结束时间。

  1. public Result getList(String date) {
  2. Date now = null;
  3. Date last = null;
  4. String split[] = date.split(",");//获取查询日期的开始时间,00:00:00
  5. last = DateUtil.beginOfDay(DateUtil.parse(split[0]));
  6. //获取查询日期的结束时间,23:59:59
  7. now = DateUtil.endOfDay(DateUtil.parse(split[1]));
  8.  。。。。。
  9. }

7)offsetHour方法和offsetDay方法获取时间偏移(向前或向后)

  1. Date date = DateUtil.date();
  2. //获取三个小时前的时间,结果:2017-03-01 19:33:23
  3. Date newDate = DateUtil.offsetHour(date, -3);
    //获取三个小时后的时间
    Date date = DateUtil.offsetHour(date,3);
  4. //获取三天后的时间,结果:2017-03-04 22:33:23
  5. Date newDate2 = DateUtil.offsetDay(date, 3);
  6. //获取三天前的时间,结果:2017-03-04 22:33:23
  7. Date newDate3 = DateUtil.offsetDay(date, -3);
  8.  
  9. //昨天
  10. Date yesterday = DateUtil.yesterday();
  11. //明天
  12. Date tomorrow = DateUtil.tomorrow();
  13. //上周
  14. Date Date = DateUtil.lastWeek();
  15. //下周
  16. Date Date1 = DateUtil.nextWeek();
  17. //上个月
  18. Date Date2 = DateUtil.lastMonth();
  19. //下个月
  20. Date Date3 = DateUtil.nextMonth();

8)between方法获取日期天数差和小时差

  1. String dateStr1 = "2017-03-01 22:33:23";
  2. Date date1 = DateUtil.parse(dateStr1);
  3. String dateStr2 = "2017-05-01 23:33:23";
  4. Date date2 = DateUtil.parse(dateStr2);
  5. String dateStr3 = "2017-03-02 20:23:35";
  6. Date date3 = DateUtil.parse(dateStr3);
  7.  
  8. //两个时间段相差的天数
  9. long betweenDay = DateUtil.between(date1, date2, DateUnit.DAY);
  10. //两个时间段相差的小时
  11. long betweenHour = DateUtil.between(date1, date3, DateUnit.HOUR);
  12.  
  13. //格式化时间差,精确到分
  14. String s = DateUtil.formatBetween(betweenDay, BetweenFormater.Level.MINUTE);

9)其他

  1. //年龄
  2. int age = DateUtil.ageOfNow("1990-01-30");
  3.  
  4. //是否闰年
  5. boolean leapYear = DateUtil.isLeapYear(2017);

hutool的DateUtil工具类的更多相关文章

  1. hutool的时间工具类

    hutool的时间工具类 糊涂的时间工具类有很多使用方法,用到了这几个 日期向后偏移     String now = DateUtil.now();        Date date4= DateU ...

  2. hutool包的DateUtil工具类

    [首先引入依赖 ] <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core& ...

  3. DateUtil工具类

    package com.autoserve.mh.common.util;   import java.text.SimpleDateFormat; import java.util.Calendar ...

  4. 邓博泽 java最全的DateUtil工具类

    package com.kld.yijie.web.util; import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java. ...

  5. 03-自己封装DateUtil工具类

    package com.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.u ...

  6. JAVA DateUtil 工具类封装(转)

    原文链接 https://blog.csdn.net/wangpeng047/article/details/8295623  作者三次整理后的代码 下载链接   https://www.lanzou ...

  7. Hutool中那些常用的工具类和方法

    Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...

  8. Java中的工具类究竟如何命名?

    先来几个例子 JDK自带工具类 Arrays.asList(); Objects.equals(); Collections.sort(); Spring框架工具类 StringUtils.isEmp ...

  9. 【Hutool】工具类之日期时间工具-DateUtil

    日期时间工具类 一.依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-al ...

随机推荐

  1. 杂论-FTP

    FTP 一 简单介绍 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时, ...

  2. 【机制】js的闭包、执行上下文、作用域链

    1.从闭包说起 什么是闭包 一个函数和对其周围状态(词法环境)的引用捆绑在一起,这样的组合就是闭包. 也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域. 在 JavaScript 中,每 ...

  3. STM32通过rosserial接入ROS通讯开发

    作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:羽林君 前言 主题:串口是一种设备间常用的通讯接口,rosserial将串口字符数据转发到标准ROS网络,并输出到rosout和其日志文件.本文将 ...

  4. 加快你ROS安装的一篇文章

    前言: 首先ROS大家应该比较熟悉了哈,如果需要补充一下请看我之前的这篇文章 <嵌入式的我们为什么要学ROS>,对于嵌入式来说ROS是一个很好的进阶方向,所以如何快速的安装一个ROS到我们 ...

  5. A - A Gifts Fixing

    t组询问,每次给出数列长度n 以及两个长度为n的数列{ai​}和{bi​}. 有三种操作:ai​−1, bi​−1以及ai​,bi​同时− 1 -1−1. 问最少多少步以后可以让两个数列变成常数数列. ...

  6. 动态规划TG.lv(1) (洛谷提高历练地)

    动态规划TG.lv(1) P1005 矩阵取数游戏 分析:每行不超过80个数字,直接区间DP即可,\(dp[i][j]\)表示区间\([i,j]\)之间取数可以得到的答案,每次向右或者向左扩展即可.但 ...

  7. Codeforces Round #636div3 D. Constant Palindrome Sum (划分区间,差分)

    题意:给你一个长度为偶数n的数组,每次可以将一个元素修改为不大于k的值,要求每个a[i]+a[n-i+1]都相等,求最少操作多少次 题解:假设每一对的和都为sum,小的记为mn,大的记为mx;     ...

  8. k8s-2-集成apollo配置中心

    主题: 在k8s中集成Apollo配置中心 架构图 一.配置中心概述 配置的几种方式 本课讲得是基于配置中心数据库实现 配置管理的现状 常见的配置中心 主讲:k8s configmap,apollo ...

  9. PDF transform to PPT online & free

    PDF transform to PPT online & free > Speaker Deck Share Presentationswithout the Mess Speaker ...

  10. Next.js Conf 2020

    Next.js Conf 2020 Next.js Conf Ticket https://nextjs.org/conf Conf Schedule https://confs.tech/javas ...