Joda Time 日期处理

1、Joda Time出现的背景

  JDK1.8之前 只支持java.util.Datel、java.util.Calendar

  问题:Calendar类操作繁琐 如:月份从0开始计算。

     DateFormat线程不安全,两个线程同时使用formatter解析日期,无法预期结果

  JDK1.8后 重写日期库,引入Java.time包,大量借鉴Joda-time

 

2、Joda Time项目

  pom依赖:

    // JODA TIME
    compile'joda-time:joda-time:2.9.9'

 

  使用:

  创建日期:

    

        // 获取当前日期
        DateTime nowDate = new DateTime();  //2018-11-29T13:51:45.602+08:00
        
        /*******DateTime 转成Date、String********/
        Date date = nowDate.toDate();    //Thu Nov 29 13:52:46 CST 2018
        String dateStr = nowDate.toString("yyyy-MM-dd HH:mm:ss");    //2018-11-29 13:54:11
        
        /*******String 转成Date********/
        Date strDate = DateTime.parse("2018-11-29 13:54:11",DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")).toDate();    //Thu Nov 29 13:54:11 CST 2018

        /*******Date 转成Str********/
        String dateStr1 = new DateTime(new Date()).toString("yyyy-MM-dd HH:mm:ss");    //2018-11-29 14:05:15
        
        
        /******* 日期计算  ********/
        DateTime minusDays = nowDate.minusDays(1);    //昨天     2018-11-28T14:13:13.087+08:00
        DateTime plusDays = nowDate.plusDays(1);    //明天    2018-11-30T14:12:40.398+08:00
        DateTime minusMonths = nowDate.minusMonths(1);    //一月前    2018-10-29T14:12:14.446+08:00
        DateTime plusMonths = nowDate.plusMonths(1);     //一月后     2018-12-29T14:29:51.924+08:00
        
        /******* 计算区间天数  ********/
        DateTime begin = new DateTime("2018-11-10"); 
        DateTime end = new DateTime("2018-11-20"); 
        
        Period p = new Period(begin, end, PeriodType.days());
        int days = p.getDays();     // 10
        
        /******* 计算区间天数  ********/
        Interval i = new Interval(begin, end); 
        boolean contained = i.contains(new DateTime("2018-11-15"));     // true
        
        /******* 日期比较  ********/
        boolean after = begin.isAfter(end);        // false
        boolean before = begin.isBefore(end);     // true
        boolean equal = begin.isEqual(end);     // false

 

posted @ 2018-11-29 15:24  黑兔娃子666  阅读(642)  评论(0编辑  收藏  举报