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
相關用法
- Java java.time.temporal.TemporalQueries用法及代碼示例
- Java java.time.temporal.WeekFields用法及代碼示例
- Java java.time.temporal.ValueRange用法及代碼示例
- Java java.time.Clock.equals()用法及代碼示例
- Java java.time.Clock.fixed()用法及代碼示例
- Java java.time.Clock.getZone()用法及代碼示例
- Java java.time.Clock.hashCode()用法及代碼示例
- Java java.time.Clock.instant()用法及代碼示例
- Java java.time.Clock.millis()用法及代碼示例
- Java java.time.Clock.offset()用法及代碼示例
- Java java.time.Clock.system()用法及代碼示例
- Java java.time.Clock.systemDefaultZone()用法及代碼示例
- Java java.time.Clock.systemUTC()用法及代碼示例
- Java java.time.Clock.tick()用法及代碼示例
- Java java.time.Clock.tickMinutes()用法及代碼示例
- Java java.time.Clock.tickSeconds()用法及代碼示例
- Java java.time.Clock.withZone()用法及代碼示例
- Java java.time.Duration.abs()用法及代碼示例
- Java java.time.Duration.addTo()用法及代碼示例
- Java java.time.Duration.between()用法及代碼示例
- Java java.time.Duration.compareTo()用法及代碼示例
- Java java.time.Duration.dividedBy()用法及代碼示例
- Java java.time.Duration.equals()用法及代碼示例
- Java java.time.Duration.from()用法及代碼示例
- Java java.time.Duration.get()用法及代碼示例
注:本文由純淨天空篩選整理自surbhityagi15大神的英文原創作品 java.time.temporal.TemporalAdjusters Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。