我想在下一个(例如)星期一的日期/时间创建LocalDateTime
的实例。
Java Time API中是否有任何方法,或者我应该计算当前日期和目标日期之间的天数,然后使用LocalDateTime.of()方法?
答案 0 :(得分:14)
无需手动进行任何计算。
您可以使用方法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)
。