我正在使用 Joda Time 实现倒计时。我只需要秒的显示精度。
但是在打印时间时,秒数显示为整秒,因此当倒计时达到例如 900 毫秒时,将打印“0”秒,但作为倒计时显示“1”会更有意义第二,直到时间实际达到0ms。
例子:
void printDuration(Duration d) {
System.out.println(
d.toPeriod(PeriodType.time()).toString(
new PeriodFormatterBuilder().printZeroAlways().appendSeconds().toFormatter()
)
);
}
printDuration(new Duration(5000)); // Prints "5" => OK
printDuration(new Duration(4900)); // Prints "4" => need "5"
printDuration(new Duration(1000)); // Prints "1" => OK
printDuration(new Duration(900)); // Prints "0" => need "1"
printDuration(new Duration(0)); // Prints "0" => OK
基本上我需要将秒数从毫秒向上舍入而不是向下舍入。有没有办法用 Joda 实现这一点而无需编写我自己的格式化程序?