一、用于取代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的更多相关文章

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

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

  2. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  3. 基于Java8的日期时间工具类DateTimeFormatter

    原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...

  4. Apache Commons Lang之日期时间工具类

    码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...

  5. Java 8——日期时间工具库(java.time)

    一.前言 在介绍Java SE 8中新的日期时间库前,先了解下Java 8之前的日期时间工具的诟病. 在Java SE 8前,日期时间工具库在java.util包中,包括: java.util.Dat ...

  6. Java基础——常用类之日期时间类

    如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...

  7. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

随机推荐

  1. 一个简单的使用matplotlib作图的例子

    #使用matplotlib作图 import numpy as np import matplotlib.pyplot as plt #x = np.linspace(start, stop, num ...

  2. less使用总结

    15年自学了 less ,可是一直没用,就忘记了.后来抱着提高 css 开发速度的目的,又去学习了 less ,学完马上用,效果立竿见影,记得也牢了.刚开始学习前,我们总会问自己一个问题,学习它有什么 ...

  3. iOS--性能优化--保持界面流畅

    卡顿产生的原因和解决方案 在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建.布局计算.图片解 ...

  4. C++Primer学习笔记《三》

    数组名事实上就是一个常指针,指向数组元素中第一个的地址,在程序中假设要用指针遍历数组,不能直接用数组名来自增或自减.由于它是常量,一般先把数组名保存一份同类型的指针,然后再用这个指针来自增或是自减来实 ...

  5. JavaScript脚本的执行原理?

    JavaScript是一种动态.弱类型.基于原型的语言,通过浏览器可以直接执行. 当浏览器遇到\<script>标记的时候,浏览器会执行之间的JavaScript代码.嵌入的js代码是顺序 ...

  6. LORA芯片SX1272IMLTRT资料介绍

    升特公司(Semtech)(纳斯达克:SMTC)日前推出新型远程RFIC平台的首款产品SX1272,可将器件的无线传输距离扩大至15公里. 该器件集成了升特公司的新型LoRa(远程)调制技术,相比其他 ...

  7. ListView 中的TextView实现跑马灯效果

    案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多 ...

  8. 一个实现 手机端“输入验证码 ”效果Demo

    之前在“掘金”上看到这样一个demo 我觉得很有意思,于是今天把它搬下来,记在自己的“小本本”里也许会对以后的项目有点用,若要自己去实现这样一个案例也能实现,但是可能没有那么“妙”. 想法: 1.使用 ...

  9. 关于如何解决bootstrap table 列 切换 刷新 高度不一样

    在使用bootstrap table时候,碰到bootstrap table 列 切换 刷新 高度不一样的问题,如图所示: 解决这个问题很简单,在你的页头加一句<!DOCTYPE html> ...

  10. git私服

    目录 安装 git 在服务器上部署 Git 1.在服务器上创建一个新用户 2.创建一个git仓库 3.在服务器端打开RSA认证(重要) 4.在客户端创建SSH key 5.把步骤4生成的公钥导入服务器 ...