是否有以人们说话的方式打印时间段的库?我的意思是,它应该将以精确的时间单位给出的时间段转换为具有一定程度不精确性的“口述”时间段,例如:
- 360 天 -> “1 年”,
- 32 天 -> "1 个月",
- 385 天 -> 1 年 1 个月"
JodaTime 通过切断所有“零”持续时间部分来解决这个问题,但它甚至不能将几天变成几个月:
PeriodFormatterBuilder builder = new PeriodFormatterBuilder().
appendYears().appendSuffix(" year(s) ").
appendMonths().appendSuffix(" month(s) ").
appendDays().appendSuffix(" day(s)");
MutablePeriod almostOneYear = new MutablePeriod(0, 0, 0, 360, 0, 0, 0, 0);
StringBuffer durationInWords = new StringBuffer();
builder.toPrinter().printTo(durationInWords, almostOneYear, Locale.ENGLISH);
System.out.println(durationInWords.toString());
产生“360 天”,甚至不是“n 个月 m 天”(n,m — 取决于什么是“标准”年)。也许我用错了?