当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。