Java 从android上的天数中获取年、月、日
我想以年、月、日的形式获得年龄;像这样,Java 从android上的天数中获取年、月、日,java,android,jodatime,Java,Android,Jodatime,我想以年、月、日的形式获得年龄;像这样,x年y月z天 我可以用这几天时间: 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 如何将日转换为年、月和日格式 编
x年y月z天
我可以用这几天时间:
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年零4个月的,但如果我尝试了Period g=新时期(a)代码>我只有5天
应该是28年零4个月零17天
一般来说,您需要:
年龄:28岁4个月17天
通常,这将获取您的区域设置,或者您可以显式地将区域设置传递给。不幸的是,Joda似乎没有本地化为印度尼西亚。你可以像你的问题一样制作你自己的格式化程序,或者(如果你有更多的时间,想要一份好的简历,等等)考虑为Joda制作一个印尼本地化版本。要获得int
的天数,你需要使用nm_days.getDays()
@a--C,谢谢,但我仍然无法将天转换为年、月和日的格式,将天除以365以获得多少年;然后执行days%365
以获取剩余天数;如果你想处理闰年,你必须做一些更复杂的逻辑。没有唯一的解决方案。例如,32天可以是1个月1天(如果一个月有31天)或1个月4天(如果一个月有28天)。这很好,但是我可以设置为没有“-”吗?我更喜欢4个月29天而不是5个月1天,我能把它改成我的语言吗?我是印尼人
Period period = new Period(birthdate, now);
Log.d("age", PeriodFormat.wordBased().print(period));