在JAVA中显示格式XX:00

在JAVA中显示格式XX:00,java,number-formatting,Java,Number Formatting,我想在Java中以XX:00的格式显示一个数字。我怎么做 例如:整数=12; 表演12点 double i = 12; show 12:00 显示双倍数字 如果12.0是以冒号作为小数分隔符打印的小数: double i = 12; DecimalFormatSymbols dfs = new DecimalFormatSymbols(); dfs.setDecimalSeparator(':'); NumberFormat format = new Decim

我想在Java中以XX:00的格式显示一个数字。我怎么做

例如:整数=12; 表演12点

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加3刻钟,印刷的45也等于3刻钟,所以这就是我们想要的。它四舍五入,所以即使12.759等于12小时45分32.4秒,它仍然打印为
12:45

Java8及更早版本: 我使用的
toMinutesPart
方法是在Java9中引入的。在Java 8(及更早版本)中,您仍然可以使用
Duration
类,但它的优势较小,因此您也可以不使用它:

    int hours = (int) i;
    long minutesOnly = totalMinutes - TimeUnit.HOURS.toMinutes(hours);
    System.out.format("%02d:%02d%n", hours, minutesOnly);
现在结果与上面相同。

i+“:00”
?或者使用
String.format
    int hours = (int) i;
    long minutesOnly = totalMinutes - TimeUnit.HOURS.toMinutes(hours);
    System.out.format("%02d:%02d%n", hours, minutesOnly);