gpt4 book ai didi

java - 使用 Joda-Time PeriodFormatter 显示 "negative"时间段

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:35 34 4
gpt4 key购买 nike


我在一个项目上使用 joda-time (1.6.2),我正在做的其中一件事就是计算预测时间和实际时间之间的差异。这种差异有时是积极的,有时是消极的。虽然适当的方法可能是使用 Duration 而不是 Period,但使用 PeriodFormatter 来显示结果让我对 PeriodFormatterBuilder 产生了疑问类(class)。例如:

DateTime d1 = new DateTime(2011, 6, 17, 13, 13, 5, 0) ;
DateTime d2 = new DateTime(2011, 6, 17, 10, 17, 3, 0) ;

Period negativePeriod = new Period(d1, d2);
Period positivePeriod = new Period(d2, d1);

PeriodFormatter pf = new PeriodFormatterBuilder()
.minimumPrintedDigits(2)
.appendHours()
.appendSuffix(":")
.rejectSignedValues(true) // Does this do anything?
.appendMinutes()
.appendSuffix(":")
.appendSeconds()
.toFormatter();

System.out.printf("Negative Period: %s\n", pf.print(negativePeriod));
System.out.printf("Positive Period: %s\n", pf.print(positivePeriod));

这个的输出是:

Negative Period: -02:-56:-02
Positive Period: 02:56:02

我知道 Period 分别存储其日期和时间的每个组成部分,但对我来说,.rejectSignedValues(true) 方法的预期行为用于构建 Formatter 将只显示第一个元素的 - 符号,例如:

Negative Period: -02:56:02

我是否误解了 API,或者这是一个错误?乔达斯蒂芬?有人吗?

显示我想要的内容的工作并不难,但我只是对 Builder 方法感到好奇。

谢谢,
-曼纽尔

最佳答案

rejectSignedValues 的 Javadoc 说 Reject signed values when parsing the next and following appended fields,即。它只影响解析,不影响打印。

您的提议可能会带来有用的增强,但不能保证所有组件都是积极的,或者都是消极的。这也是一个有效期:P-6D8H(正负混合)。

关于java - 使用 Joda-Time PeriodFormatter 显示 "negative"时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387723/

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