【Hutool】Hutool工具类之日期时间工具——DateUtil
一、用于取代Date对象的DateTime对象
再也不用Date SimpleDateFormat Calendar之间倒腾来倒腾去了!日期创建-获取-操作一步到位!
如果JDK版本更新到了8及以上,不妨尝试新的时间日期API(参见JDK8新特性随笔篇)
学习一个类的基本方式是了解其获取方式(构造器),与常用方法(API)
以下是引用自官网示例的Demo:
public static void main(String[] args) {
DateTime dateTime = new DateTime("2017-9-14 21:55:18", "yyyy-MM-dd HH:mm:ss");
// 获取日期成员(年、季度、月、日)
int year = dateTime.year();// 年
System.out.println("year = " + year);
int season = dateTime.season();// 季度
System.out.println("season = " + season);
int month = dateTime.month();// 月份
System.out.println("month = " + month);
int dayOfWeek = dateTime.dayOfWeek();// 周几
System.out.println("dayOfWeek = " + dayOfWeek);
int dayOfMonth = dateTime.dayOfMonth();// 此月第N天
System.out.println("dayOfMonth = " + dayOfMonth);
// 调整日期时间
DateTime dateTime1 = dateTime.offset(DateField.DAY_OF_MONTH, -1);
System.out.println(dateTime1.toString());
}
结果:

二、强大的日期时间工具类——DateUtil
1.解析——字符串解析为日期
public static void main(String[] args) {
// 日期字符串请补全为2位数字
String str1 = "2017-09-14";
String str2 = "2017-09-14 21:03:01";
// 自动感应格式
Date date1 = DateUtil.parse(str1);
Date date2 = DateUtil.parse(str2);
System.out.println("date1:"+date1);
System.out.println("date2:"+date2);
// 手动设置格式(其中DateTime是可以完全替代Date的一个子类)
DateTime dateTime1 = DateUtil.parse(str1, "yyyy-MM-dd");
DateTime dateTime2 = DateUtil.parse(str2, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateTime1);
System.out.println(dateTime2);
}

2.格式化——将日期格式化为字符串
public static void main(String[] args) {
// 日期字符串请补全为2位数字
String str1 = "2017-09-14";
// 自动感应格式
Date date1 = DateUtil.parse(str1);
// 格式化为指定格式字符串
String s1 = DateUtil.format(date1, "yyyy年MM月dd日");
System.out.println("s1 = " + s1);
// 常用格式格式化
String s2 = DateUtil.formatDate(date1);
System.out.println("s2 = " + s2);
}
结果:

3.获取日期成员(对比DateTime的操作)
public static void main(String[] args) {
// 日期字符串请补全为2位数字
String str1 = "2017-09-14";
// 自动感应格式
Date date1 = DateUtil.parse(str1);
// 获取指定日期成员(通过DateTime同样可以完成)
int year = DateUtil.year(date1);
System.out.println("year = " + year);
int dayOfMonth = DateUtil.dayOfMonth(date1);
System.out.println("dayOfMonth = " + dayOfMonth);
}
结果:

4.日期时间偏移
public static void main(String[] args) {
// 日期字符串请补全为2位数字
String str1 = "2017-09-14";
// 自动感应格式
Date date1 = DateUtil.parse(str1);
// 日期时间偏移
DateTime dateTime = DateUtil.offset(date1, DateField.HOUR_OF_DAY, 5);
System.out.println("dateTime = " + dateTime);
DateTime dateTime1 = DateUtil.offsetDay(date1, 1);
System.out.println("dateTime1 = " + dateTime1);
}
结果:

针对当前时间的简化偏移操作:
public static void main(String[] args) {
// 当前时间的简化偏移方法
String now = DateUtil.now();
System.out.println("now = " + now);
// 昨天
DateTime yesterday = DateUtil.yesterday();
System.out.println("yesterday = " + yesterday);
// 明天
DateTime tomorrow = DateUtil.tomorrow();
System.out.println("tomorrow = " + tomorrow);
// 上周
DateTime lastWeek = DateUtil.lastWeek();
System.out.println("lastWeek = " + lastWeek);
// 下月
DateTime nextMonth = DateUtil.nextMonth();
System.out.println("nextMonth = " + nextMonth);
}
结果:

5.其它:
public static void main(String[] args) {
// 距今年龄
int age = DateUtil.ageOfNow("2008-12-22");
System.out.println("age = " + age);
// 是否闰年
boolean leapYear = DateUtil.isLeapYear(2017);
System.out.println("leapYear = " + leapYear);
}
结果:

【Hutool】Hutool工具类之日期时间工具——DateUtil的更多相关文章
- 【Hutool】工具类之日期时间工具-DateUtil
日期时间工具类 一.依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-al ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- 基于Java8的日期时间工具类DateTimeFormatter
原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...
- Apache Commons Lang之日期时间工具类
码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...
- Java 8——日期时间工具库(java.time)
一.前言 在介绍Java SE 8中新的日期时间库前,先了解下Java 8之前的日期时间工具的诟病. 在Java SE 8前,日期时间工具库在java.util包中,包括: java.util.Dat ...
- Java基础——常用类之日期时间类
如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie
Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...
- Redis操作Hash工具类封装,Redis工具类封装
Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...
随机推荐
- 沉淀再出发:java中的CAS和ABA问题整理
沉淀再出发:java中的CAS和ABA问题整理 一.前言 在多并发程序设计之中,我们不得不面对并发.互斥.竞争.死锁.资源抢占等等问题,归根到底就是读写的问题,有了读写才有了增删改查,才有了所有的一切 ...
- vue组件详解(一)——组件与复用
一.什么是组件 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码. 二.组件用法 组件需要注册后才可以使用,注册有全局注册和局部注册两种 ...
- Python2.7 - IMOOC - 2
第三章 Python变量和数据类型 3-1.数据类型 在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,当然包括负整数,表示方法和数学上的写法一模一样,十 ...
- C++ 异常处理机制的实现
http://blog.jobbole.com/103925/ 本文深入讨论了VC++编译器异常处理的实现机制.附件源代码包含了一个VC++的异常处理库. 下载源代码 – 19 Kb 介绍 相对于传统 ...
- 【LGP2045】方格取数加强版
题目 还纠结了一下是费用流还是最小割 最终还是决定让最小割去死吧 我们的问题就是让一个点的点权只被计算一次 考虑拆点 将所有点拆成入点和出点,入点向出点连流量为\(1\)的边 每一个出点往下连能到达的 ...
- mvc4中viewbag viewdata 和 tempdata的区别
ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析. eg: ViewBag.NumberObjs = new string[] { "on ...
- WOSign API
[HttpGet] public ActionResult WoSign() { // System.IO.FileStream fs = System.IO.File.OpenRead(System ...
- 【转】如何开发自己的HttpServer-NanoHttpd源码解读
现在作为一个开发人员,http server相关的内容已经是无论如何都要了解的知识了.用curl发一个请求,配置一下apache,部署一个web server对我们来说都不是很难,但要想搞清楚这些背后 ...
- PHP面试系列之Linux(一) ----- Linux基础
一.系统安全 sudo:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行. su:用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码. ...
- codeforces472D
Design Tutorial: Inverse the Problem CodeForces - 472D 给你了一个 n × n最短距离矩阵.(即矩阵中dis[u][v]为u点到v点的最短距离), ...