【发布时间】:2019-05-23 00:26:01
【问题描述】:
我想用指定的DayOfWeek 将YearMonth 转换为LocalDate,例如2019 年 2 月的第二个星期二。
以下代码抛出DateTimeException:
YearMonth yearMonth = YearMonth.of(2019, Month.FEBRUARY);
TemporalAdjuster secondTuesday = TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.TUESDAY);
LocalDate date = LocalDate.from(yearMonth).with(secondTuesday);
为了使我的代码正常工作,我需要将最后一行替换为
LocalDate date = yearMonth.atDay(1).with(secondTuesday);
难道没有不需要使用atDay(1) 的更清洁的解决方案吗?
【问题讨论】:
-
注:您不能对仅由年和月创建的部分日期使用日操作。
-
恐怕没有更干净的方法了。至少我想不出一个。我理解并同意您的反对意见。
标签: java time java-8 localdate