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

      结果:

      

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7341211.html
Copyright © 2011-2022 走看看