DurationFormatUtils中formatPeriod计算两个日期之间的时间差

时间:2022-06-23 11:28:00
  • formatPeriod方法用于计算两个时间之间的片断,然后转化成相应的日期字符串类型,即能表示的最大单位
  • 转换的格式化格式是y-M-d H:m:s
  • 起始日期不能大于结束日期,否则会返回异常的数据
计算两个日期之间相差的天数
        Date date1 = new Date();
        date1 = DateUtils.addDays(date1, -12);

        Date date2 = new Date();
        String day = DurationFormatUtils.formatPeriod(date1.getTime(), date2.getTime(), "d");
        System.out.println(day);

输出结果:

12
计算两个日期之间相差的年数
        Date date1 = new Date();

        Date date2 = new Date();
        date2 = DateUtils.addYears(date2, 3);

        String day = DurationFormatUtils.formatPeriod(date1.getTime(), date2.getTime(), "y");
        System.out.println(day);

输出结果:

3
对日期格式进行时间的格式化输出

formatDuration有两个参数,一个是时间片段毫秒数,另一个是格式化字符串,格式化的时候只能使用d、 H、 m、s、S。

        long t = new Date().getTime();
        //d、 H、 m、s、S
        String time = DurationFormatUtils.formatDuration(t,"dd''HH'小时'mm'分钟'ss''SS'毫秒'"); 
        System.out.println(time);

输出结果:

17690天10小时39分钟01秒130毫秒

另外一种输出格式是:

        long t = new Date().getTime();
        //d、 H、 m、s、S
        String time = DurationFormatUtils.formatDuration(t,"dd HH:mm:ss.SS"); 
        System.out.println(time);

输出结果是:

17690 10:41:12.785