Java:将毫秒转换为HH:MM:SS

Sun*_*nny 5 java time

我有一个以毫秒为单位的值,我想将其转换为HH :: MM:SS.fff这仅用于持续时间目的.

我知道有一种基本的方法:

String.format("%d min, %d sec", 
    TimeUnit.MILLISECONDS.toMinutes(millis),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
Run Code Online (Sandbox Code Playgroud)

但有更好的方法吗?谢谢.

Tha*_*vas 10

这个数学将解决这个问题:

int sec  = (int)(millis/ 1000) % 60 ;
int min  = (int)((millis/ (1000*60)) % 60);
int hr   = (int)((millis/ (1000*60*60)) % 24);
Run Code Online (Sandbox Code Playgroud)

如果你只想要分钟和秒,那么:

int sec  = (int)(millis/ 1000) % 60 ;
int min  = (int)((millis/ (1000) / 60);
Run Code Online (Sandbox Code Playgroud)