一、用于取代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. 原生ajax和jsonp

    封装方法: function ajax(options) { options = options || {}; options.type = (options.type || "GET&qu ...

  2. 捡了一个非常淫荡的PHP后门,给跪了

    <?php unlink($_SERVER['SCRIPT_FILENAME']); ignore_user_abort(true); set_time_limit(0); $remote_fi ...

  3. python中基于descriptor的一些概念(下)

    @python中基于descriptor的一些概念(下) 3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3 ...

  4. 关于使用Filter降低Lucene tf idf打分计算的调研

    将query改成filter,lucene中有个QueryWrapperFilter性能比较差,所以基本上都须要自己写filter.包含TermFilter,ExactPhraseFilter,Con ...

  5. POJ3690 Constellations

    嘟嘟嘟 哈希 刚开始我一直在想二维哈希,但发现如果还是按行列枚举的话会破坏子矩阵的性质.也就是说,这个哈希只能维护一维的子区间的哈希值. 所以我就开了个二维数组\(has_{i, j}\)表示原矩阵\ ...

  6. Odoo中要根据某字段值作为条件判断值,但又不想在界面显示

    在视图标签中包含这个field(包含这个字段才可以使用该字段),但其invisible属性设置为1,即:该字段不可见. <field name="字段" invisible= ...

  7. 数据结构——平衡二叉树(AVLTree)

    3.平衡二叉树 平衡二叉树,又称AVL树,它是一种特殊的二叉排序树. 3.1 平衡二叉树的四种自旋 这个左旋.右旋,在方向上和我观念里的是相反的. 查了之后才知道: 1.外侧插入:LL.RR,都是在最 ...

  8. 【bootstrap】面包屑导航(Breadcrumbs)

    .breadcrumb > li + li:before { color: #CCCCCC; content: "/ "; padding: 0 5px; } <ol ...

  9. 组合测试(Combinatorial Test)/配对测试 (pairwise)

    组合测试方法:配对测试实践 实施组合测试 常用的Pairwise工具集:http://www.pairwise.org/tools.asp 成对测试(Pairwise Testing)又称结对测试.两 ...

  10. ethereumjs-vm/examples/run-transactions-simple

    https://github.com/ethereumjs/ethereumjs-vm/tree/master/examples/run-transactions-simple prerequisit ...