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

  结果:

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM