gpt4 book ai didi

java - 显示格式XX :00 in JAVA

转载 作者:行者123 更新时间:2023-12-02 11:18:56 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com