2016-02-12 76 views
6

的某一天我想在接下來的(例如)週一的日期/時間創建的LocalDateTime實例。獲取下LocalDateTime爲

有沒有在Java中時API的任何方法,或者我應該做的計算有多少天是當前和目標日期之間,然後用LocalDateTime.of()方法?

+0

我會推薦:https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html – Fincio

+3

@Fincio當然不是。 – Tunaki

+0

LocalDateTime \t plusWeeks(長周)? – Fincio

回答

11

沒有必要用手工做任何計算。

可以調整一個給定的日期與方法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)