我希望年龄,月份和日期的年龄;像这样,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
答案 0 :(得分:2)
一般情况下,您需要PeriodFormat.wordBased
和new Period
:
Period period = new Period(birthdate, now);
Log.d("age", PeriodFormat.wordBased().print(period));
年龄:28岁,4个月和17天
通常,这会选择您的语言环境,或者您可以明确地将语言环境传递给PeriodFormat.wordBased
。不幸的是,Joda似乎并没有为印度尼西亚本地化。您可以像问题一样制作自己的格式化程序,或者(如果您有更多时间可用,想要一个好的简历项目等),请考虑为Joda制作印尼语本地化。