- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在一个项目上使用 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/
我正在使用 PeriodFormatter 返回一个字符串,显示事件发生前的时间。下面的代码不断创建像 1146 小时 39 分钟这样的字符串,而不是 x 天 y 小时 z 分钟。有什么想法吗? 谢谢
我有这个PeriodFormatter: PeriodFormatterBuilder() .appendDays() .appendSuffix(
我正在使用 JodaTime 为 Android 应用程序实现倒数计时器。输出因设备而异。 DateTime openingDateTime = new DateTime(2018, D
我有一个格式化程序如下: private static PeriodFormatter formatter = new PeriodFormatterBuilder() .p
我不明白我做错了什么,我一定错过了一些东西。 private PeriodFormatter fmt = new PeriodFormatterBuilder() .print
我在使用 Joda Time 的 PeriodFormatter 时遇到问题。我想要报告天数、小时数、分钟数和秒数,但我的尝试似乎需要数周时间。我应该采取哪些不同的做法? import org.jod
我以为我明白了,但显然我不明白。你能帮我通过这些单元测试吗? @Test public void second() { assertEquals("00:00:01", OurDateTime
当我如下使用 PeriodFormatter 时 PeriodFormatter formatter = new PeriodFormatterBuilder().appendHours()
我只需要显示天/天的后缀,我该如何实现?它不起作用: java.lang.IllegalStateException: No field to apply suffix to.. privat
我在一个项目上使用 joda-time (1.6.2),我正在做的其中一件事就是计算预测时间和实际时间之间的差异。这种差异有时是积极的,有时是消极的。虽然适当的方法可能是使用 Duration 而不是
我是一名优秀的程序员,十分优秀!