<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java 8 – `TemporalAdjusters` > 原文: [https://howtodoinjava.com/java/date-time/java8-temporal-adjusters/](https://howtodoinjava.com/java/date-time/java8-temporal-adjusters/) 學習使用 [Java 8](https://howtodoinjava.com/java-8-tutorial/) [**`TemporalAdjusters`**](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/TemporalAdjusters.html),我們要在其中處理**重復日期**,例如處理每周報告,發送每月自動報告, 等等 ## 1\. `TemporalAdjuster`接口 [`TemporalAdjuster`](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/TemporalAdjuster.html)接口和`TemporalAdjusters`工廠類提供了許多有用的**內置調節器**,用于處理重復事件。 其中大多數名稱直接告訴您它們的作用。 如果提供的調整器無法解決任何特定的業務需求,我們可以構建自己的**自定義`TemporalAdjuster`**。 然后,我們可以使用該日期/時間對象的[`with()`](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#with-java.time.temporal.TemporalAdjuster-)方法將其應用于任何時間對象。 例如,在團隊中,總是每個星期一都有每周一次的會議。 我們想獲取接下來的 5 次會議的日期列表。 ```java import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; import java.util.List; public class TemporalAdjusterExamples { public static void main(String[] args) { LocalDate localDate = LocalDate.of(2020, 5, 9); List<LocalDate> meetingDates = getWeeklyMeetingDates(localDate, 5); System.out.println(meetingDates); } private static List<LocalDate> getWeeklyMeetingDates(LocalDate localDate, int count) { List<LocalDate> dates = new ArrayList<>(); for(int i = 0; i < count; i++) { localDate = localDate .with(TemporalAdjusters.next(DayOfWeek.MONDAY)); dates.add(localDate); } return dates; } } ``` 程序輸出。 ```java [2020-05-11, 2020-05-18, 2020-05-25, 2020-06-01, 2020-06-08] ``` ## 2\. 內置調節器 這是方便使用的默認提供的調節器的列表。 訪問官方 Java 文檔以獲取詳細信息。 | 調節器 | 描述 | | --- | --- | | `firstDayOfMonth()` | 返回一個新日期,將其設置為當前月份的第一天。 | | `lastDayOfMonth()` | 返回一個新日期,將其設置為當前月份的最后一天。 | | `firstDayOfNextMonth()` | 返回一個新日期,將其設置為下個月的第一天。 | | `firstDayOfYear()` | 返回一個新日期,將其設置為當年的第一天。 | | `lastDayOfYear()` | 返回一個新日期,將其設置為當年的最后一天。 | | `firstDayOfNextYear()` | 返回一個新日期,將其設置為明年的第一天。 | | `firstInMonth()` | 返回同月的第一個匹配日期的新日期。 例如“ 5 月的第一個星期三”。 | | `lastInMonth()` | 返回與上一個匹配的星期幾相同的月份中的新日期。 | | `dayOfWeekInMonth()` | 返回與月份中的星期幾相同的月份中的新日期。 | | `next()` | 將日期返回到調整日期后指定的星期幾的第一個匹配項。 | | `previous()` | 將日期返回到調整日期之前指定的星期幾的第一個匹配項。 | ## 3\. 創建自定義的`TemporalAdjuster` 創建一個自定義調整器,該調整器可用于將重復日期調整為某些業務邏輯。 它可以通過兩種方式完成: * 實現`TemporalAdjuster`接口 * 內聯 Lambda 表達式 > ```java //Custom temporal adjuster with lambda TemporalAdjuster temporalAdjuster = t -> t.plus(Period.ofDays(7)); //Custom temporal adjuster with TemporalAdjuster interface class NextBirthDay implements TemporalAdjuster { @Override public Temporal adjustInto(Temporal temporal) { return temporal.with(ChronoField.MONTH_OF_YEAR, 11) .with(ChronoField.DAY_OF_MONTH, 22); } } ``` 在評論中向我發送有關將 Java 8 `TemporalAdjuster`用于日期操作的問題和建議。 學習愉快! [下載源碼](https://github.com/lokeshgupta1981/Core-Java/tree/master/src/com/howtodoinjava/core/datetime)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看