【发布时间】:2015-02-10 01:29:10
【问题描述】:
我正在尝试以以下格式对持续时间求和:“hh:mm:ss”(例如:“08:55:12”)使用 Joda Time:
PeriodFormatter formatter = new PeriodFormatterBuilder()
.printZeroAlways().minimumPrintedDigits(2).appendHours()
.appendLiteral(":").printZeroAlways().printZeroAlways()
.minimumPrintedDigits(2).appendMinutes().appendLiteral(":")
.printZeroAlways().minimumPrintedDigits(2).appendSeconds()
.toFormatter();
Duration totalTime = Duration.ZERO;
for (Entry entry : entries) {
Period period = formatter.parsePeriod(entry.getTime());
Duration duration = period.toStandardDuration();
totalTime = totalTime.plus(duration);
}
Period totalPeriod = totalTime.toPeriod();
if (totalPeriod.getHours() < 10) {
hours = "0" + totalPeriod.getHours();
} else {
hours = Integer.toString(totalPeriod.getHours());
}
mTextView.setTextView(hours
+ String.format("%02d:%02d", totalPeriod.getMinutes(),
totalPeriod.getSeconds()));
由于某种原因,它给了我错误的结果(总持续时间太长了)。你能帮我找出这个问题的原因吗?
【问题讨论】:
-
请给出一些示例输入、预期输出和实际输出。为我们提供一个可编译的自包含示例也将很有帮助(并且预期来自 2k+ 用户)。
标签: java android jodatime duration