zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    etcd
    mesos+marathon+zookeeper+docker
    安装好dashboard 登录出现错误
    最小化centos7离线安装docker环境
    centons7安装ftp
    TensorFlow运行模型demo时常见问题
    centos7全新系统安装TensorFlow
    vmware创建虚拟机并安装centos7系统
    python使用moviepy模块对视频进行操作
    iis7/8隐藏banner信息
  • 原文地址:https://www.cnblogs.com/lch666/p/10038565.html
Copyright © 2011-2022 走看看