构造LocalDate时自动转换月/日

时间:2019-04-08 21:39:53

标签: java java-8

此代码

LocalDate date = LocalDate.of(2019, 4, 31);

引发此错误:

java.time.DateTimeException: Invalid date 'APRIL 31'

我需要基于给定的天数构造一个日期,在这种情况下为31,但是由于4月只有30天,因此我得到了例外。在上面的示例中,我应该获得5月1日的信息,这是否可以与java.time库一起使用还是需要手动编码?

2 个答案:

答案 0 :(得分:4)

正如我在评论中提到的,如果您将基本日期加几天,可能会更容易:

LocalDate.of(2019,4,1).plusDays(31);

答案 1 :(得分:3)

如果您确实想这样做,可以尝试使用此方法代替plusDay:

LocalDate.parse("2018-04-31", DateTimeFormatter.ISO_LOCAL_DATE.withResolverStyle(ResolverStyle.LENIENT))