以下代码无法正确打印日期,我也需要打印日期和分钟。

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.

最佳答案

根据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

10-07 16:35
查看更多