當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.time.temporal.TemporalAdjusters用法及代碼示例


TemporalAdjusters Java 中的類提供了調整器,這是修改時間對象的關鍵工具。示例包括將日期設置為“該月的第二個星期六”或“Next Tuesday” 的調整器,或者將日期設置為該月的最後一天的調整器。

TemporalAdjuster 有兩種用途。第一種是直接調用接口上的方法。第二種是使用 Temporal.with(TemporalAdjuster):

以下兩種使用 TemporalAdjuster 的方法是等效的,但建議使用第二種方法,因為它更幹淨且可讀

temporal = thisAdjuster.adjustInto(temporal);
temporal = temporal.with(thisAdjuster);

方法

方法 說明
dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek) 該方法用於返回月份調整器中的day-of-week,它返回與序數day-of-week同一月份內的新日期對象。
firstDayOfMonth() 此方法用於返回“每月第一天”調整器,該調整器返回設置為當月第一天的新日期。
firstDayOfNextMonth() 此方法用於返回“下個月的第一天”調整器,該調整器返回設置為下個月的第一天的新日期。
firstDayOfNextYear() 該方法用於返回“明年的第一天”調整器,它返回設置為明年的第一天的新日期。
firstDayOfYear() 此方法用於返回“一年的第一天”調整器,該調整器返回設置為當前年份的第一天的新日期。
firstInMonth(DayOfWeek dayOfWeek) 此方法用於返回月份調整器中的第一個,它返回同月中第一個匹配的新日期day-of-week。
lastDayOfMonth() 此方法用於返回“每月最後一天”調整器,該調整器返回設置為當月最後一天的新日期。
lastDayOfYear() 此方法用於返回“一年的最後一天”調整器,該調整器返回設置為當前一年的最後一天的新日期。
lastInMonth(DayOfWeek dayOfWeek) 此方法用於返回月份調整器中的最後一個,該調整器返回與最後一個匹配的 day-of-week 同月的新日期。
next(DayOfWeek dayOfWeek) 此方法用於返回下一個day-of-week調整器,該調整器將日期調整為調整日期後第一次出現指定的day-of-week。
nextOrSame(DayOfWeek dayOfWeek) 此方法用於返回 next-or-same day-of-week 調整器,該調整器將日期調整為調整日期後第一次出現指定的 day-of-week,除非它已經在當天,在這種情況下返回相同的對象。
ofDateAdjuster(UnaryOperator<LocalDate> dateBasedAdjuster) 此方法用於獲取包裝日期調整器的TemporalAdjuster。
previous(DayOfWeek dayOfWeek) 此方法用於返回之前的 day-of-week 調整器,該調整器將日期調整為被調整日期之前第一次出現指定的 day-of-week。
previousOrSame(DayOfWeek dayOfWeek) 此方法用於返回 previous-or-same day-of-week 調整器,該調整器將日期調整為調整日期之前指定的 day-of-week 的第一次出現,除非它已經在當天,在這種情況下,將返回相同的對象。

Java


// Implementation of TemporalAdjuster Class Output will
// be different at the time of execution for different
// days. All the dates in the output will be with respect
// to the current date of executing the program
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class TemporalAdjusterExample {
    public static void main(String args[])
    {
        TemporalAdjusterExample gfg
            = new TemporalAdjusterExample();
        gfg.testAdjusters();
    }
    public void testAdjusters()
    {
        // to get the current date
        LocalDate date1 = LocalDate.now();
        System.out.println("Today's date is: " + date1);
        // to get the next monday
        LocalDate nextTuesday = date1.with(
            TemporalAdjusters.next(DayOfWeek.MONDAY));
        System.out.println("Next Monday is on : "
                           + nextTuesday);
        // to get the second saturday of next month
        LocalDate firstInYear = LocalDate.of(
            date1.getYear(), date1.getMonth(), 1);
        LocalDate secondSaturday
            = firstInYear
                  .with(TemporalAdjusters.nextOrSame(
                      DayOfWeek.SATURDAY))
                  .with(TemporalAdjusters.next(
                      DayOfWeek.SATURDAY));
       
        // print date of second Saturday of next month
        System.out.println("Second saturday is on : "
                           + secondSaturday);
    }
}

輸出:

Today's date is: 2021-02-24
Next Monday is on : 2021-03-01
Second saturday is on : 2021-02-13


相關用法


注:本文由純淨天空篩選整理自surbhityagi15大神的英文原創作品 java.time.temporal.TemporalAdjusters Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。