创建时本地日期无效

Invalid localdate when it created

和java8

我想用这行代码得到 2016 年 3 月 31 日

System.out.println(LocalDate.now().withDayOfMonth(31).withMonth(3).withYear(2016));

我明白了 线程 "main" java.time.DateTimeException 中的异常:无效日期 'APRIL 31'

正如评论所说,在 2016 年 4 月有 运行 这个日期,您试图将日期更改为 31,这在当前的 4 月份不存在。所以在设置日期之前将月份更改为三月。

更好的是,使用静态 of 方法。

LocalDate localDate = LocalDate.of( 2016 , 3 , 31 );

或使用 enum constant Month.MARCH.

LocalDate localDate = LocalDate.of( 2016 , Month.MARCH , 31 );