【发布时间】:2012-09-03 13:12:57
【问题描述】:
我整个上午都在试图找到一种方法来实现我最初认为相对容易的任务:将以数字方式表示的持续时间转换为可读的方式。例如,输入 3.5,输出应为“3 年零 6 个月”。
根据我正在阅读的内容,似乎强烈推荐 Joda Time 库。使用该库并关注this post 我正在尝试以下操作:
Period p = new Period(110451600000L); // 3 years and a half
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears()
.appendSuffix(" year", " years")
.appendSeparator(" and ")
.appendMonths()
.appendSuffix(" month", " months")
.toFormatter();
System.out.println(formatter.print(p));
但是输出什么都没有。不知道为什么它不起作用。
我也试过Apache DurationFormatUtils,但不起作用。
有人有想法吗?
提前致谢。
【问题讨论】:
-
也许您会对这个非常古老的答案感兴趣。 stackoverflow.com/a/12/559299
-
Hinton,非常感谢您的及时答复。尽管您建议的答案是针对 C#,但我想我可以轻松地调整算法。尽管如此,这将是我的最后一个解决方案,因为我相信应该有一种更简单、更清洁的方式来使用 Joda Time,例如。我的首要任务是避免重新发明轮子:D 再次感谢您的回答!
标签: java format jodatime duration