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

前端 未结 19 2028
情话喂你
情话喂你 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:19

    This answer only uses Duration methods and works with Java 8 :

    public static String format(Duration d) {
        long days = d.toDays();
        d = d.minusDays(days);
        long hours = d.toHours();
        d = d.minusHours(hours);
        long minutes = d.toMinutes();
        d = d.minusMinutes(minutes);
        long seconds = d.getSeconds() ;
        return 
                (days ==  0?"":days+" jours,")+ 
                (hours == 0?"":hours+" heures,")+ 
                (minutes ==  0?"":minutes+" minutes,")+ 
                (seconds == 0?"":seconds+" secondes,");
    }
    

提交回复
热议问题