joda-time与jdk8新增的java.time.*

joda-time可以简化java.util.Date和java.Calendar对时间和日期的操作,具体使用可以参照如下示例

@Test
    public void test() {
        DateTime dt = new DateTime();
        System.out.println(dt.getYear()
                + "-" + dt.getMonthOfYear()
                + "-" + dt.getDayOfMonth()
                + " " + dt.getHourOfDay()
                + ":" + dt.getMinuteOfHour()
                + ":" + dt.getSecondOfMinute());
        // 格式化带Locale,输出==> 2015-11-21 11:39:56 星期六
        System.out.println(dt.toString("yyyy-MM-dd HH:mm:ss EE", Locale.CHINESE));


        DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyyMMddHHmmss");
        // 时间解析
        DateTime dt2 = DateTime.parse("20150909101112", dtf);
        // 格式化输出
        System.out.println(dt2.toString("yyyy/MM/dd HH:mm:ss"));
        // 根据指定格式,将时间字符串转换成DateTime对象,这里的格式和上面的输出格式是一样的
        DateTime dt3 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
                .parseDateTime("2015-12-26 03:27:39");
        System.out.println("dt3=" + dt3.toString("yyyy/MM/dd HH:mm:ss"));

        // 增加日期
        DateTime dt4 = dt3.plusDays(-1)
                .plusHours(1)
                .plusMinutes(1)
                .plusSeconds(1);
        System.out.println("dt4=" + dt4.toString("yyyy/MM/dd HH:mm:ss"));

        //取得 3秒前的时间
        DateTime dt5 = dt4.secondOfMinute().addToCopy(-3);
        dt4.getSecondOfMinute();// 得到整分钟后,过的秒钟数
        dt4.getSecondOfDay();// 得到整天后,过的秒钟数
        dt4.secondOfMinute();// 得到分钟对象,例如做闰年判断等使用
        System.out.println("dt5=" + dt5.toString("yyyy/MM/dd HH:mm:ss")
                + ",seconds=" + dt5.getSecondOfMinute());


        //计算两个日期间隔的天数
        LocalDate start = new LocalDate(2014, 12, 18);
        LocalDate end = new LocalDate(2015, 12, 18);
        int days = Days.daysBetween(start, end).getDays();
        System.out.println("days=" + days);


        //判断是否闰月
        org.joda.time.DateTime.Property month = dt.monthOfYear();
        System.out.println("是否闰月:" + month.isLeap()
                + ", 是否闰年:" + dt.yearOfCentury().isLeap());


        // DateTime与java.util.Date对象,当前系统TimeMillis转换
        DateTime dt6 = new DateTime(new Date());
        Date date = dt6.toDate();
        DateTime dt7 = new DateTime(System.currentTimeMillis());

        Calendar calendar = Calendar.getInstance();
        dt = new DateTime(calendar);
    }

猜你喜欢

转载自oitebody.iteye.com/blog/2258253