jodatime - 周期格式化程序显示两个最重要的单位(例如 "years, mon"表示长周期, "hours, mins"表示短周期?)

标签 jodatime

我有一个 Joda 时间段格式化程序,定义如下。我希望它只显示两个最重要的单位。

因此,在很长一段时间内,它可能会产生“x 年,y 个月”。短时间内“x 小时,y 分钟”。

使用 Joda 实现这一目标的最佳方法是什么?

val periodFormatter: PeriodFormatter = new PeriodFormatterBuilder()
    .printZeroNever().appendYears().appendSuffix(" year", " years")
    .appendSeparator(", ")
    .printZeroNever().appendMonths().appendSuffix(" month", " months")
    .appendSeparator(", ")
    .printZeroNever().appendDays().appendSuffix(" day", " days")
    .appendSeparator(", ")
    .printZeroNever().appendHours().appendSuffix(" hr", " hrs")
    .appendSeparator(", ")
    .printZeroRarelyLast().appendMinutes().appendSuffix(" min", " mins")
    .toFormatter();

最佳答案

方法minimumPrintedDigits适用于“下一个和后续附加字段”。
由于您使用的是 printZeroNever , 我建议把 minimumPrintedDigits在 append 方法之前的方法。
编辑:仅使用 printZeroNever 效果会更好.

关于jodatime - 周期格式化程序显示两个最重要的单位(例如 "years, mon"表示长周期, "hours, mins"表示短周期?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14689192/

相关文章:

java - JodaTime 使用 EXIF 元数据中的日期字符串抛出 IllegalArgumentException

parsing - Elasticsearch无法使用自定义格式解析日期

java - Joda-time 从 LocalDateTime 字符串到 LocalDate

java - 转换 Java 8's LocalDateTime to Joda' s LocalDateTime 的简单方法

java - 将 JodaTime 持续时间转换为字符串

java - 验证日期+时间选择器

java - 用于检查事件发生的时间容器

java - Joda 时间 不同时间的总和

gradle - 将 gradle 从 4.4 更新到 5.4 导致 joda-time 依赖问题

java - 通过 BlazeDS 从 Java 到 Flex 的自定义编码