很好用的JAVA时间工具:joda-time

介绍一个很好用的JAVA时间工具:joda-time

1.生成joda-time对象

    public void test1(){
        DateTime dt1 = new DateTime();
        DateTime dt2 = new DateTime(new Date());
        DateTime dt3 = new DateTime(2017,11,27,14,30,50,500);
        System.out.println(dt1.toString("yyyy-MM-dd HH:mm:ss"));
        System.out.println(dt2.toString("yyyy-MM-dd HH:mm:ss"));
        System.out.println(dt3.toString("yyyy-MM-dd HH:mm:ss"));
    }

2.时间对象字符窜解析

    public void test2(){
        DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
        DateTime dt = DateTime.parse("2019-04-09", formatter);
        System.out.println(dt.toString("yyyy-MM-dd HH:mm:ss"));
    }

3.单个时间对象计算

    public void test3(){
        DateTime dt = new DateTime(2017,11,12,13,14,15);
        //对时间对象加1秒,加1天,减2天
        DateTime dt2 = dt.plusSeconds(1).plusDays(1).minusDays(2);
        System.out.println(dt2.toString("yyyy-MM-dd HH:mm:ss"));
    }

4.获取年月日点分秒

    public void test4(){
        DateTime dt = new DateTime();

        //年
        int year = dt.getYear();
        //月
        int month = dt.getMonthOfYear();
        //日
        int day = dt.getDayOfMonth();
        //星期
        int week = dt.getDayOfWeek();
        //点
        int hour = dt.getHourOfDay();
        //分
        int min = dt.getMinuteOfHour();
        //秒
        int sec = dt.getSecondOfMinute();
        //毫秒
        int msec = dt.getMillisOfSecond();
        System.out.println("当前时间为:"+year+"-"+month+"-"+day+" "+hour+":"+min+":"+sec+" "+msec);
        System.out.println("当前星期为:"+week);
    }

5.星期的特殊处理

    public void test5(){
        DateTime dt = new DateTime();
        switch(dt.getDayOfWeek()) {
            case DateTimeConstants.SUNDAY:
                System.out.println("星期日");
                break;
            case DateTimeConstants.MONDAY:
                System.out.println("星期一");
                break;
            case DateTimeConstants.TUESDAY:
                System.out.println("星期二");
                break;
            case DateTimeConstants.WEDNESDAY:
                System.out.println("星期三");
                break;
            case DateTimeConstants.THURSDAY:
                System.out.println("星期四");
                break;
            case DateTimeConstants.FRIDAY:
                System.out.println("星期五");
                break;
            case DateTimeConstants.SATURDAY:
                System.out.println("星期六");
                break;
        }
    }

6.与JDK日期对象的转换

    public void test6(){
        DateTime dt = new DateTime();

        //将DateTime转成java.util.Date
        Date d1 = new Date(dt.getMillis());
        Date d2 = dt.toDate();

        //将DateTime转成java.util.Calendar
        Calendar c1 = Calendar.getInstance();
        c1.setTimeInMillis(dt.getMillis());
        Calendar c2 = dt.toCalendar(Locale.getDefault());
    }

7.取特殊日期

    public void test7(){
        DateTime dt = new DateTime();
        //月初日期
        DateTime firstDay = dt.dayOfMonth().withMinimumValue();
        //90天后那一周的最后一天
        DateTime lastDay = dt.plusDays(30).dayOfWeek().withMaximumValue();
    }

8.时区

    public void test8(){
        //默认设置为日本时间
        DateTimeZone.setDefault(DateTimeZone.forID("Asia/Tokyo"));
        DateTime dt = new DateTime();
        //伦敦时区
        new DateTime(DateTimeZone.forID("Europe/London"));
    }

9.计算区间

    public void test9(){
        DateTime begin = new DateTime("2018-08-09");
        DateTime end = new DateTime("2019-05-06");
        //计算区间毫秒数
        Duration duration = new Duration(begin, end);
        long time = duration.getMillis();

        //计算区间天数
        Period period = new Period(begin, end, PeriodType.days());
        int days = period.getDays();

        //计算特定日期是否在改区间内
        Interval interval = new Interval(begin, end);
        boolean contains = interval.contains(new DateTime("2018-12-12"));
    }

10.日期比较

    public void test10(){
        DateTime d1 = new DateTime("2019-05-09");
        DateTime d2 = new DateTime("2019-05-15");

        //和系统时间比
        d1.isBeforeNow();
        d1.isAfterNow();
        d1.isEqualNow();

        //和其他时间比
        d1.isBefore(d2);
        d1.isAfter(d2);
        d1.isEqual(d2);
    }

11.格式化输出

    public void test11(){
        DateTime dateTime = new DateTime();
        //2019/05/09 10:34:46.957上午
        System.out.println(dateTime.toString("yyyy/MM/dd hh:mm:ss.SSSa"));
        //2019-05-09 10:34:46
        System.out.println(dateTime.toString("yyyy-MM-dd HH:mm:ss"));
        //星期四 09 五月, 2019 10:34:46上午
        System.out.println(dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa"));
        //2019/05/09 10:34 Asia/Shanghai
        System.out.println(dateTime.toString("yyyy/MM/dd HH:mm ZZZZ"));
        //2019/05/09 10:34 +0800
        System.out.println(dateTime.toString("yyyy/MM/dd HH:mm Z"));
    }

求收藏,求赞,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值