我想在 Java 中显示 XX:00 格式的数字。我该怎么做?
例如:int 数字 = 12; 演出时间 12:00。
double i = 12;
show 12:00
最佳答案
显示双数
如果 12.0 是要打印的小数,并以冒号作为小数分隔符:
double i = 12;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(':');
NumberFormat format = new DecimalFormat("00.00", dfs);
System.out.println(format.format(i));
输出:
12:00
如果 i
是 12.75 而不是 12,则分数也会被打印:
12:75
四舍五入到最接近的保留两位小数的数字,因此 12.756 将打印为 12:76
。
显示持续时间(以小时和分钟为单位)
如果您的 12:00
表示时间量,即以小时和分钟为单位的持续时间,我们想要不同的东西,因为一小时有 60 分钟,而不是 100 分钟。这是 Java 9及更高版本:
long totalMinutes = (long) (i * TimeUnit.HOURS.toMinutes(1));
Duration dur = Duration.ofMinutes(totalMinutes);
System.out.format("%02d:%02d%n", dur.toHours(), dur.toMinutesPart());
这会打印
12:00
或者在 12.75 的情况下:
12:45
12.75 等于 12 又四分之三,打印出来的 45 也等于四分之三小时,所以这就是我们想要的。它向下舍入,因此即使 12.759 等于 12 小时 45 分 32.4 秒,它仍然打印为 12:45
。
Java 8 及更早版本:
我使用的 toMinutesPart 方法是在 Java 9 中引入的。在 Java 8(及更早版本)中,您仍然可以使用 Duration
类,但它的优势较小,因此您也可以没有它:
int hours = (int) i;
long minutesOnly = totalMinutes - TimeUnit.HOURS.toMinutes(hours);
System.out.format("%02d:%02d%n", hours, minutesOnly);
现在的结果和上面一样。
关于java - 显示格式XX :00 in JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50072318/