Java time (Minutes:Seconds:Miliseconds)



嘿,我有任何想法我可以格式化长时间到Minutes:Seconds:毫秒,例如01:57:934我可以用String.format(0#.0#.###),但是怎么把这个长变换成时间呢?

假设你的时间少于一个小时,我会使用SimpleDateFormat。

String text = new SimpleDateFormat("mm:ss:SSS").format(new Date(time));

或者你可以用简单的数学。

String text = String.format("%02d:%02d:%03d", time/60000, time/1000%60, time/1000);

因为1.5中有java.util.concurrent.TimeUnit类,所以像这样使用它:

long millis = System.currentTimeMillis();
String.format("%d min, %d sec", 
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) - 
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);

对于Java版本低于1.5或不完全支持TimeUnit类的系统(如API版本9之前的Android),可以使用以下公式:

int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours   = (int) ((milliseconds / (1000*60*60)) % 24);

long timeff = (d1.getTime() - d2.getTime());

    String diff=String.format("%d year(s) %d day(s) %d hour(s) %d min(s) %d sec(s)",(TimeUnit.MILLISECONDS.toDays(timeDiff)/365),TimeUnit.MILLISECONDS.toDays(timeDiff)%365,
            TimeUnit.MILLISECONDS.toHours(timeDiff)
            - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS
            .toDays(timeDiff)),
            TimeUnit.MILLISECONDS.toMinutes(timeDiff)
            - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
            .toHours(timeDiff)),
            TimeUnit.MILLISECONDS.toSeconds(timeDiff)
            - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
            .toMinutes(timeDiff)));
    System.out.println(diff);

在d1 &d2。然后你会得到差值的正确答案

相关内容

最新更新