DecimalFormat将分钟格式化为小时

时间:2014-11-08 05:14:15

标签: java decimalformat

我有时间在几分钟内说大约900分钟,我需要将900分钟转换为小时,这可以通过除以60来完成,但这必须使用DecimalFormat完成某些事情

DecimalFormat formatter = new DecimalFormat("xxxxxH");
System.out.println(formatter.format(900));

输出应为15H

我需要将格式化程序传递给其他一些方法(用于在条形图中格式化Y轴)

2 个答案:

答案 0 :(得分:2)

DecimalFormat不会为您执行该数学运算。您可以使用printf

int mins = 900;
System.out.printf("%dH%n", mins / 60);

String.format(String, Object...)

int mins = 900;
System.out.println(String.format("%dH", mins / 60));

TimeUnit.convert(long, TimeUnit)喜欢

int mins = 900;
System.out.println(String.format("%dH",
        TimeUnit.HOURS.convert(mins, TimeUnit.MINUTES)));

全部三个输出

15H

答案 1 :(得分:0)

  

我需要将格式化程序传递给其他一些方法(用于在条形图中格式化Y轴)

我会将实现细节留给您作为学习练习,但一种直接的方法是创建自己的DecimalFormat子类来覆盖各种format方法,算一算,并将生成的修改后的数字传递给基础,以进行常规格式化。

实施此功能时,请确保您的目标是让基地DecimalFormat尽可能多地完成工作。

作为一种选择,您可以选择参数化您的分割因子而不是硬编码,例如60,这将使你有更好的机会在其他情况下重用你的新课程。