如何用Jodatime转换年(月),月(s)和日(天)内的天数?

时间:2015-01-28 13:47:10

标签: java jodatime

如何用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)"

1 个答案:

答案 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天"。