gpt4 book ai didi

java - 来自 YearMonth 的 LocalDate 和第 n 个 DayOfWeek

转载 作者:行者123 更新时间:2023-12-05 02:14:11 24 4
gpt4 key购买 nike

我想将 YearMonth 转换为具有指定 DayOfWeekLocalDate,例如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) 的更简洁的解决方案?

最佳答案

您已经自己找到了最好和最干净(或最不差)的解决方案:

LocalDate date = yearMonth.atDay(1).with(secondTuesday);

atDay 的参数不一定必须是 1,但它必须是相关月份的有效日期,所以为什么不是 1?

with() 始终返回您调用它的同一类型。也就是说,YearMonth.with() 将始终返回 YearMonth,而不是 LocalDate。因此,您不能在那里使用调节器。

我理解并同意你的异议,但你已经得到的是我们能做的最好的。您可以而且应该将它包装在一个名称好听的方法中。

关于java - 来自 YearMonth 的 LocalDate 和第 n 个 DayOfWeek,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com