我在尝试打印两个日期之间的给定期间时遇到问题。
让我向你展示细节,然后我将把代码放入:
日期a=5月20日,日期b=6月19日
间隔时间应为30天(或29天,无关紧要)
但根据我的代码,它显示只有1天。
你能帮我解决这个问题吗?我想要的是整个周期: 29天。
谢谢。
public static void main(String args[]) {
Calendar calA = Calendar.getInstance();
calA.set(Calendar.MONTH, 5);
calA.set(Calendar.DAY_OF_MONTH, 20);
Calendar calB = Calendar.getInstance();
calB.set(Calendar.MONTH, 6);
calB.set(Calendar.DAY_OF_MONTH, 19);
DateTime da = new DateTime(calA.getTime());
DateTime db = new DateTime(calB.getTime());
Period p = new Period(da,db);
System.out.println(printPeriod(p));
}
private static String printPeriod(Period period) {
PeriodFormatter monthDaysHours = new PeriodFormatterBuilder()
.appendMonths()
.appendSuffix(" month"," months")
.appendSeparator(",")
.appendDays()
.appendSuffix(" day", " days")
.appendSeparator(",")
.appendHours()
.appendSuffix(" hour"," hours")
.toFormatter();
return monthDaysHours.print(period.normalizeStandardPeriodType());
} 发布于 2011-05-21 00:54:23
该期间已创建为"4周零1天“-但您没有打印出周数。
假设您想要年/月/日/时间,将Period构造函数调用更改为:
Period p = new Period(da, db, PeriodType.yearMonthDayTime());然后去掉对normalizeStandard()的调用(我实际上找不到一个名为normalizeStandardPeriodType()的方法;我假设这是一个拼写错误)。
当然,这将忽略这段时间内的任何年份。您可以潜在地使用:
PeriodType pt = PeriodType.yearMonthDayTime().withYearsRemoved();
Period p = new Period(da, db, pt);https://stackoverflow.com/questions/6075133
复制相似问题