【发布时间】:2021-10-20 17:13:50
【问题描述】:
我想以人类可读的形式格式化一个时期(年龄),例如:
47 years, one month and 7 days。这里1 替换为one 和0 跳过喜欢
58 years and 7 days.
是否有现成的格式化程序来完成这样的任务? 我应该自己写以及如何正确地做到这一点? 我必须使用 Format 抽象类吗?
【问题讨论】:
-
DateTimeFormatterBuilder是 Java 内置的,但不够灵活,不适合您使用。您可以扩展DataTimeFormatter,但您仍然需要自己编写逻辑。 -
检查此stackoverflow.com/questions/53749850/… 您只需对其进行少量修改即可删除任何 0 值
-
我在发布我的问题之前阅读了提到的帖子。我想我必须编写自己的逻辑。我想知道如何以最佳方式做到这一点。
-
我无法扩展
public final class DateTimeFormatter -
我认为您需要从头开始。您不必使用任何特定的基类或接口。对于像这样“不合时宜”的要求(即以明显不一致的方式将数字拼写为单词),目前尚不清楚现有的 Java 格式化 API 是否会对您有所帮助。在这种情况下,“正确”将是主观的......并且无关紧要。
标签: java formatting format localdate period