[英]Joda Period in year month day
我正在使用以下代码来区分年,月,日中的2个日期
tenAppDTO.getTAP_PROPOSED_START_DATE()=2009-11-01
tenAppDTO.getTAP_PROPOSED_END_DATE()=2013-11-29
ReadableInstant r=new DateTime(tenAppDTO.getTAP_PROPOSED_START_DATE());
ReadableInstant r1=new DateTime(tenAppDTO.getTAP_PROPOSED_END_DATE());
Period period = new Period(r, r1);
period.normalizedStandard(PeriodType.yearMonthDay());
years = period.getYears();
month=period.getMonths();
day=period.getDays();
out.println("year is-:"+years+"month is -:"+ month+"days is -:"+ day);
通过使用上面的代码,我得到结果年份是 - :4个月是 - :0天是 - :0但实际结果是年份是: - 4个月是 - :0天是 - :28
请提供解决方案
你可以尝试改变
Period period = new Period(r, r1);
同
Period period = new Period(r, r1, PeriodType.yearMonthDay());
你可以尝试这样:
tenAppDTO.getTAP_PROPOSED_START_DATE()=2009-11-01
tenAppDTO.getTAP_PROPOSED_END_DATE()=2013-11-29
ReadableInstant r=new DateTime(tenAppDTO.getTAP_PROPOSED_START_DATE());
ReadableInstant r1=new DateTime(tenAppDTO.getTAP_PROPOSED_END_DATE());
Period period = new Period(r, r1, PeriodType.yearMonthDay()); //Change here
period.normalizedStandard(PeriodType.yearMonthDay());
years = period.getYears();
month=period.getMonths();
day=period.getDays();
out.println("year is-:"+years+"month is -:"+ month+"days is -:"+ day);
即使你已经回答了Rahul,我也可以提供更具视觉吸引力的代码(因为问题和答案都有点混乱):
DateTime date1 = new DateTime(2009, 11, 01, 00, 00);
DateTime date2 = new DateTime(2013, 11, 29, 00, 00);
Period period = new Period(date1, date2, PeriodType.yearMonthDay());
System.out.println("Y: " + period.getYears() + ", M: " + period.getMonths() +
", D: " + period.getDays());
// => Y: 4, M: 0, D: 28
您需要将期间类型指定为年 - 月 - 日,因为标准类型( PeriodType.standard()
)基于年 - 月 - 星期 -日 - ...并且指定日期的日差恰好是4周 :
Period period = new Period(date1, date2, PeriodType.standard());
System.out.println("Y: " + period.getYears() + ", M: " + period.getMonths() +
", W: " + period.getWeeks() + ", D: " + period.getDays());
// => Y: 4, M: 0, W: 4, D: 0
您可以使用Period.of
的java.time.Period
public Period getPeriodForMonthsAndDays(int monthsCount, int daysCount) {
return Period.of(0, monthsCount, daysCount);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.