嘿,我知道如何将长时间格式化为 Minutes:Seconds:Miliseconds 例如 01:57:934 我可以使用String.format(0#.0#.###)
,但是如何将这么长的时间转换为时间;?
问问题
5542 次
3 回答
2
从 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))
);
对于 1.5 以下的 Java 版本或不完全支持 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);
于 2012-12-29T12:54:46.590 回答
2
假设您的时间少于一小时,我会使用 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);
于 2012-12-29T12:55:58.330 回答
0
long timeDiff = (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 在这里指定正确的日期。然后你会得到正确的答案
于 2012-12-29T12:52:57.360 回答