从android上的天数获得年,月,日

时间:2013-11-16 01:01:40

标签: java android jodatime

我希望年龄,月份和日期的年龄;像这样,x years and y months and z days

我能够得到这样的日子:

LocalDate birthdate = new LocalDate (dob_yr, dob_mt, dob_dy);
LocalDate now = new LocalDate();
Days nm_days = Days.daysBetween(birthdate, now);

我尝试使用Log.d("days ", nm_days.getDays() +"");,这就是我得到的:10365 如何将天数转换为数月和数天的格式?

修改

确定。现在我得到了一些东西,但仍然没有真正解决我的问题,这里是:

Days a = Days.daysBetween(birthdate, now);
Months b = Months.monthsBetween(birthdate, now);
Years c = Years.yearsBetween(birthdate, now);

Period g = new Period(b);
PeriodFormatter dhm = new PeriodFormatterBuilder()
    .appendYears()
    .appendSuffix(" years", " years")
    .appendSeparator(" and ")
    .appendMonths()
    .appendSuffix(" months", " months")
    .appendSeparator(" and ")
    .appendDays()
    .appendSuffix(" day", " days")
    .toFormatter();

Log.d("age", dhm.print(g.normalizedStandard()));

当我尝试这个时,我得到了28 years and 4 months,但是如果我尝试使用Period g = new Period(a);我只有5 days它应该是28 years and 4 months and 17 days

1 个答案:

答案 0 :(得分:2)

一般情况下,您需要PeriodFormat.wordBasednew Period

Period period = new Period(birthdate, now);
Log.d("age", PeriodFormat.wordBased().print(period));
  

年龄:28岁,4个月和17天

通常,这会选择您的语言环境,或者您可以明确地将语言环境传递给PeriodFormat.wordBased。不幸的是,Joda似乎并没有为印度尼西亚本地化。您可以像问题一样制作自己的格式化程序,或者(如果您有更多时间可用,想要一个好的简历项目等),请考虑为Joda制作印尼语本地化。