以下代码无法正确打印日期,我还需要打印日期和分钟。
Duration duration = new Duration(1328223198241L - 1326308781131L);
Period p2 = new Period(duration.getMillis());
System.out.println(p2.getDays()); // prints 0, should print 22 days
System.out.println(p2.getHours()); // prints 531 which is expected.
答案 0 :(得分:3)
根据javadoc,“仅使用句点类型中的精确字段。对于标准句点类型,这仅是时间字段。因此年,月,周和日字段将没有人口。“因此你得零。
考虑这个替代方案。
Duration duration = new Duration(1328223198241L - 1326308781131L);
Period p2 = new Period(duration.getMillis());
System.out.println(p2.getHours()); // prints 531 which is expected.
System.out.println(p2.toStandardDays().getDays()); // prints 22 days
答案 1 :(得分:0)
此行为在the javadocs中解释:"持续时间大于一天,然后所有剩余持续时间将存储在最大可用精确字段中,在这种情况下为小时。"
如果您解释了您尝试做的事情,而不是您尝试做的事情,那么我相信我们能够提供帮助。例如,要查找我认为您尝试从p2.getDays()
获取的内容:
Days.daysBetween(dateTime1, dateTime2).getDays()
答案 2 :(得分:0)
以下内容是否足够:System.out.println(duration.getStandardDays());