How to format a duration in java? (e.g format H:MM:SS)

前端 未结 19 2039
情话喂你
情话喂你 2020-11-22 03:32

I\'d like to format a duration in seconds using a pattern like H:MM:SS. The current utilities in java are designed to format a time but not a duration.

19条回答
  •  傲寒
    傲寒 (楼主)
    2020-11-22 04:11

    String duration(Temporal from, Temporal to) {
        final StringBuilder builder = new StringBuilder();
        for (ChronoUnit unit : new ChronoUnit[]{YEARS, MONTHS, WEEKS, DAYS, HOURS, MINUTES, SECONDS}) {
            long amount = unit.between(from, to);
            if (amount == 0) {
                continue;
            }
            builder.append(' ')
                    .append(amount)
                    .append(' ')
                    .append(unit.name().toLowerCase());
            from = from.plus(amount, unit);
        }
        return builder.toString().trim();
    }
    

提交回复
热议问题