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

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. 小白搭建WAMP详细教程---apache、mysql、php的整合配置

    Apache与PHP整合 我们之前说过PHP能够解析PHP代码, 可是不服务于apache,apache能够获取接收浏览器的请求, 可是不能处理PHP代码, 要实现动态站点开发,就必须结合apache ...

  2. Java排序算法(一)冒泡排序

    一.测试类SortTest  import java.util.Arrays; public class SortTest { private static final int L = 20; pub ...

  3. Sqoop import export参数

    通用参数 import export 通用通用参数选项     含义说明–connect     指定JDBC连接字符串–connection-manager     指定要使用的连接管理器类–dri ...

  4. Codeforces Round #652 (Div. 2) E. DeadLee(贪心)

    题目链接:https://codeforces.com/contest/1369/problem/E 题意 Lee 有 $n$ 种不同种类的食物和 $m$ 个朋友,每种食物有 $w_i$ 个,每个朋友 ...

  5. Codeforces Round #678 (Div. 2) C. Binary Search (二分,组合数)

    题意:有长度\(n\)的序列,让你构造序列,使得二分查找能在\(pos\)位置找到值\(x\).问最多能构造出多少种排列? 题解:题目给出的\(pos\)是固定的,所以我们可以根据图中所给的代码来进行 ...

  6. Python内置模块(你还在pip install time?)&& apt-get install -f

    一.内置模块 之前不知道time是python自带的,还用pip安装.......还报错..... Python中有以下模块不用单独安装 1.random模块 2.sys模块 3.time模块 4.o ...

  7. SQL Server 新安装启用sa用户/sa用户登录提示管道另一端无进程

    安装时只用windows验证 安装完成后: 首先选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVER和WINDOWS身份验证模式"其 ...

  8. python爬虫笔记Day01

    python爬虫笔记第一天 Requests库的安装 先在cmd中pip install requests 再打开Python IDM写入import requests 完成requests在.py文 ...

  9. forEachRemaining()方法的用法

    forEachRemaining()是java1.8新增的Iterator接口中的默认方法对于这个方法,官方文档是这么描述的:Performs the given action for each re ...

  10. DNS域名解析10步

    第一步:浏览器缓存中检查有没有对应这个域名的解析过的IP地址,如有,结束 第二步:如浏览器缓存没有查到,则访问本地操作系统,window下通过C:\Windows\System32\drivers\e ...