如何用Jodatime转换年(月),月(s)和天(s)的天数?
例如:
天= 365 ; 应打印= 1年,0个月和0天
Days days = Days.days(365);
Period p1 = new Period(days);
PeriodFormatter dhm = new PeriodFormatterBuilder()
.appendDays().appendSuffix(" days", " Dias").appendSeparator(", ")
.appendMonths().appendSuffix(" months", " Meses").appendSeparator(", e ")
.appendYears().appendSuffix(" years", " Anos").toFormatter();
System.out.println(dhm.print(p1.normalizedStandard()));
输出控制台:
1 day(s)
我也试过用
打印period.getYears() + " Ano(s), "
+ period.getMonths() + " Mes(es), "
+ period.getDays() + " Dia(s)"
答案 0 :(得分:5)
基本上没有这样的概念。毕竟,如果你在闰年开始,365天不是 1年。
你可以做的是采取一些" base"日期,将您的基于日期的期间添加到该日期,然后从结果中获取基于年/月/日的期间:
Period convertToYearMonthDay(Period period, LocalDate referenceDate) {
LocalDate endDate = referenceDate.plus(period);
return new Period(referenceDate, endDate, PeriodType.yearMonthDay());
}
当前输出的原因是normalizedStandard
正常化为" 52周,1天"。