-1
与Java 8无效时LOCALDATE它创造
我想获得2016年3月31日与该行代码
System.out.println(LocalDate.now().withDayOfMonth(31).withMonth(3).withYear(2016));
我得到线程 “main” java.time.DateTimeException 例外:无效日期'APRIL 31'
与Java 8无效时LOCALDATE它创造
我想获得2016年3月31日与该行代码
System.out.println(LocalDate.now().withDayOfMonth(31).withMonth(3).withYear(2016));
我得到线程 “main” java.time.DateTimeException 例外:无效日期'APRIL 31'
正如评论所说,在2016年4月份运行此操作后,您试图将日期更改为31日,该日期在当月4月份不存在。因此,在设置日期之前,将月份更改为3月。
更好的是,使用静态of
方法。
LocalDate localDate = LocalDate.of(2016 , 3 , 31);
或使用enum常数Month.MARCH
。
LocalDate localDate = LocalDate.of(2016 , Month.MARCH , 31);
使用'withDayOfMonth'重新排序'withMonth'。您目前正在设置本月的第31天,即四月。 4月份没有31天。您不需要使用此方法设置日期,而是使用LocalDate构造函数。 –
'LocalDate' [''of'](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#of-int-int-int-)静态工厂,但它是同样的观点:) – Tunaki