我有时间在几分钟内说大约900分钟,我需要将900分钟转换为小时,这可以通过除以60来完成,但这必须使用DecimalFormat完成某些事情
DecimalFormat formatter = new DecimalFormat("xxxxxH");
System.out.println(formatter.format(900));
输出应为15H
我需要将格式化程序传递给其他一些方法(用于在条形图中格式化Y轴)
答案 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,这将使你有更好的机会在其他情况下重用你的新课程。