Utilice la clase java.util.concurrent.TimeUnit
:
String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
Nota: TimeUnit
forma parte de la especificación de Java 1.5, pero toMinutes
se agregó a partir de Java 1.6.
Para agregar un cero inicial a los valores de 0 a 9, simplemente haga lo siguiente:
String.format("%02d min, %02d sec",
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
Si TimeUnit
o toMinutes
no son compatibles (como en Android antes de la versión de API 9), utilice las siguientes ecuaciones:
int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
//etc...