Java 字符串时间格式

Java String Time Formatting

没有 if ( hours > 0 ) 有没有办法做到这一点?我觉得必须有一种方法来指示数字的条件显示,但我无法在 javadocs 或 google.

中找到它
public String getLengthDisplay () {
    int hours = getLength() / 3600;
    int minutes = ( getLength() % 3600 ) / 60;
    int seconds = getLength() % 60;

    if ( hours > 0 ) {
        return String.format ( "%d:%02d:%02d", hours, minutes, seconds );
    } else {
        return String.format ( "%d:%02d", minutes, seconds );
    }
}

谢谢!

format() 没办法,只有 trim 个前导零:

return String.format("%d:%02d:%02d", hours, minutes, seconds)
    .replaceAll("^0:(00:)?", "");

如果小时和分钟都为零,此代码还 trims 分钟。如果您总是想要会议记录,请从此代码中删除 (00:)?

我认为如果没有 hour > 0 条件,代码将不会灵活。 修剪也是一个不错的选择。

/**
* This method is used to get the Execution Time
* by calculating the difference between StartTime and EndTime
* 
* @param StartTime Execution Start Time
* @param EndTime Execution End Time
* @return Total Execution Time
*/
 private static String ExecutionTime(String StartTime, String EndTime){

   LocalTime fromDateTime = LocalTime.parse(StartTime);
   LocalTime toDateTime = LocalTime.parse(EndTime);

   LocalTime tempDateTime = LocalTime.from( fromDateTime );

   long hours = tempDateTime.until( toDateTime, ChronoUnit.HOURS);
   tempDateTime = tempDateTime.plusHours( hours );

   long minutes = tempDateTime.until( toDateTime, ChronoUnit.MINUTES);
   tempDateTime = tempDateTime.plusMinutes( minutes );

   long seconds = tempDateTime.until( toDateTime, ChronoUnit.SECONDS);


   if(hours > 0){
       return hours + "h " +minutes + "min " + seconds + "s";
   }else{
       return minutes + "min " + seconds + "s";
   }

}

检查上面的代码,其中return时分秒格式,如果需要也可以添加分钟条件。