获取一周中给定日期的下一个 LocalDateTime
我想在下一个(例如)星期一的日期/时间创建实例。LocalDateTime
Java Time API中是否有任何方法,或者我应该计算当前日期和目标日期之间有多少天,然后使用LocalDateTime.of()方法?
我想在下一个(例如)星期一的日期/时间创建实例。LocalDateTime
Java Time API中是否有任何方法,或者我应该计算当前日期和目标日期之间有多少天,然后使用LocalDateTime.of()方法?
无需手动进行任何计算。
您可以使用 LocalDateTime.with(
adjuster) 方法使用调节器调整给定的日期。一周的第二天有一个内置的调节器:TemporalAdjusters.next(dayOfWeek)
:
返回星期几中的下一个调整器,该调整程序将日期调整为在调整日期之后指定星期的第一个匹配项。
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println(nextMonday);
}
此代码将根据当前日期返回下一个星期一。
使用静态导入,这使得代码更易于阅读:
LocalDateTime nextMonday = dateTime.with(next(MONDAY));
请注意,如果当前日期已经在星期一,则此代码将返回下一个星期一(即下周的星期一)。如果你想在这种情况下保留当前日期,你可以使用nextOrSame(dayOfWeek)。