-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