zoukankan      html  css  js  c++  java
  • 【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);
        }

      结果:

      

  • 相关阅读:
    Day 22 初识面向对象
    Day 21 内存处理与正则
    Day 20 常用模块(三)
    Day 18 常用模块(二)
    url解析
    jQuery---扩展事件
    jQuery---文档操作
    jQuery---属性操作
    jQuery---基本语法
    CSS---常用属性总结
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7341211.html
Copyright © 2011-2022 走看看