android java String.format在双精度上小数点前后填充零

android java String.format在双精度上小数点前后填充零,java,android,string-formatting,Java,Android,String Formatting,我制作了一个快速计时器,我试图以“00:00.00”的格式显示时间,其中第一个00是分钟,00.00是秒和秒的分数。我有以下格式代码: // Get the delta time long timeDelta = System.currentTimeMillis()-startTimeMillis; int minutes; double seconds; // Now split if( timeDelta>60000 ) { // Minutes minutes = (in

我制作了一个快速计时器,我试图以“00:00.00”的格式显示时间,其中第一个00是分钟,00.00是秒和秒的分数。我有以下格式代码:

// Get the delta time
long timeDelta = System.currentTimeMillis()-startTimeMillis;

int minutes;
double seconds;

// Now split
if( timeDelta>60000 ) { // Minutes
    minutes = (int)(timeDelta/60000);
    timeDelta-= minutes*60000;
}
else
    minutes = 0;

// Now for the rest
seconds = timeDelta/1000.0;

// Get the text string
final String timeString = String.format( "%1$02d:%2$02.2f", minutes, seconds );

但是字符串一直显示为“00:6.42”,而不是“00:06.42”。如何获取String.format来格式化带前导零和小数位数的小数?

在Java中,更好的方法是使用
SimpleDataFormat
如下:

long timeDelta = System.currentTimeMillis()-startTimeMillis;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("mm:ss:SS");
System.out.println(simpleDateFormat.format(timeDelta));

在Java中,更好的方法是使用
SimpleDataFormat
如下:

long timeDelta = System.currentTimeMillis()-startTimeMillis;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat ("mm:ss:SS");
System.out.println(simpleDateFormat.format(timeDelta));

可能SimpleDataFormat类将用于此目的可能SimpleDataFormat类将用于此目的Shello。谢谢你的帖子。如果经过的分钟数大于59分钟,则会出现此问题。我假设它将再次包装为0,因为它是一个时间格式化程序。继续计算分钟是很好的。是的,这是有道理的,所以我以前的编辑在这种情况下会起作用。在这种情况下,您可以使用
TimeUnit.millides
,如下所示:您好。谢谢你的帖子。如果经过的分钟数大于59分钟,则会出现此问题。我假设它将再次包装为0,因为它是一个时间格式化程序。继续计算分钟是很好的。是的,这是有道理的,因此我以前的编辑在这种情况下会起作用。在这种情况下,您可以使用
TimeUnit.millizes
,如下所示: