Class TemporalAdjusters

java.lang.Object
cloud.opencode.base.date.adjuster.TemporalAdjusters

public final class TemporalAdjusters extends Object
Temporal Adjusters - Extended temporal adjusters for business use cases 时间调整器 - 用于业务场景的扩展时间调整器

Provides additional temporal adjusters beyond JDK's TemporalAdjusters, focused on business and common use cases.

提供比JDK的TemporalAdjusters更多的时间调整器,专注于业务和常见用例。

Features | 主要功能:

  • Quarter adjusters - 季度调整器
  • Half-year adjusters - 半年调整器
  • Week adjusters (configurable first day) - 周调整器(可配置首日)
  • Business/workday adjusters - 工作日调整器
  • Time of day adjusters - 日内时间调整器
  • Composite adjusters - 组合调整器

Usage Examples | 使用示例:

LocalDate date = LocalDate.of(2024, 3, 15);

// Quarter adjusters
LocalDate quarterStart = date.with(TemporalAdjusters.firstDayOfQuarter()); // 1月1日
LocalDate quarterEnd = date.with(TemporalAdjusters.lastDayOfQuarter());    // 3月31日

// Workday adjusters
LocalDate nextWorkday = date.with(TemporalAdjusters.nextWorkday());
LocalDate plus5Workdays = date.with(TemporalAdjusters.plusWorkdays(5));

// Time adjusters
LocalDateTime dayStart = dateTime.with(TemporalAdjusters.startOfDay());  // 00:00:00
LocalDateTime dayEnd = dateTime.with(TemporalAdjusters.endOfDay());      // 23:59:59.999999999

// Composite adjusters
TemporalAdjuster combined = TemporalAdjusters.compose(
    TemporalAdjusters.firstDayOfNextMonth(),
    TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY)
);

Security | 安全性:

  • Thread-safe: Yes - 线程安全: 是
  • Null-safe: Yes (with explicit null checks on compose/andThen) - 空值安全: 是(compose/andThen有明确的空值检查)
Since:
JDK 25, opencode-base-date V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • firstDayOfMonth

      public static TemporalAdjuster firstDayOfMonth()
      Returns the first day of month adjuster. 返回月初调整器。
      Returns:
      the adjuster | 调整器
    • lastDayOfMonth

      public static TemporalAdjuster lastDayOfMonth()
      Returns the last day of month adjuster. 返回月末调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfNextMonth

      public static TemporalAdjuster firstDayOfNextMonth()
      Returns the first day of next month adjuster. 返回下月初调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfYear

      public static TemporalAdjuster firstDayOfYear()
      Returns the first day of year adjuster. 返回年初调整器。
      Returns:
      the adjuster | 调整器
    • lastDayOfYear

      public static TemporalAdjuster lastDayOfYear()
      Returns the last day of year adjuster. 返回年末调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfNextYear

      public static TemporalAdjuster firstDayOfNextYear()
      Returns the first day of next year adjuster. 返回下年初调整器。
      Returns:
      the adjuster | 调整器
    • next

      public static TemporalAdjuster next(DayOfWeek dayOfWeek)
      Returns the next day of week adjuster. 返回下一个周几调整器。
      Parameters:
      dayOfWeek - the day of week | 周几
      Returns:
      the adjuster | 调整器
    • nextOrSame

      public static TemporalAdjuster nextOrSame(DayOfWeek dayOfWeek)
      Returns the next or same day of week adjuster. 返回下一个或相同周几调整器。
      Parameters:
      dayOfWeek - the day of week | 周几
      Returns:
      the adjuster | 调整器
    • previous

      public static TemporalAdjuster previous(DayOfWeek dayOfWeek)
      Returns the previous day of week adjuster. 返回上一个周几调整器。
      Parameters:
      dayOfWeek - the day of week | 周几
      Returns:
      the adjuster | 调整器
    • previousOrSame

      public static TemporalAdjuster previousOrSame(DayOfWeek dayOfWeek)
      Returns the previous or same day of week adjuster. 返回上一个或相同周几调整器。
      Parameters:
      dayOfWeek - the day of week | 周几
      Returns:
      the adjuster | 调整器
    • dayOfWeekInMonth

      public static TemporalAdjuster dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)
      Returns the nth day of week in month adjuster. 返回月内第N个周几调整器。
      Parameters:
      ordinal - the ordinal (1-5) | 序数(1-5)
      dayOfWeek - the day of week | 周几
      Returns:
      the adjuster | 调整器
    • firstDayOfQuarter

      public static TemporalAdjuster firstDayOfQuarter()
      Returns the first day of quarter adjuster. 返回季度首日调整器。
      Returns:
      the adjuster | 调整器
    • lastDayOfQuarter

      public static TemporalAdjuster lastDayOfQuarter()
      Returns the last day of quarter adjuster. 返回季度末日调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfNextQuarter

      public static TemporalAdjuster firstDayOfNextQuarter()
      Returns the first day of next quarter adjuster. 返回下季度首日调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfHalf

      public static TemporalAdjuster firstDayOfHalf()
      Returns the first day of half-year adjuster. 返回半年首日调整器。
      Returns:
      the adjuster | 调整器
    • lastDayOfHalf

      public static TemporalAdjuster lastDayOfHalf()
      Returns the last day of half-year adjuster. 返回半年末日调整器。
      Returns:
      the adjuster | 调整器
    • firstDayOfWeek

      public static TemporalAdjuster firstDayOfWeek()
      Returns the first day of week adjuster (Monday). 返回周首日调整器(周一)。
      Returns:
      the adjuster | 调整器
    • firstDayOfWeek

      public static TemporalAdjuster firstDayOfWeek(DayOfWeek firstDayOfWeek)
      Returns the first day of week adjuster for specific first day. 返回指定首日的周首日调整器。
      Parameters:
      firstDayOfWeek - the first day of week | 周首日
      Returns:
      the adjuster | 调整器
    • lastDayOfWeek

      public static TemporalAdjuster lastDayOfWeek()
      Returns the last day of week adjuster (Sunday). 返回周末日调整器(周日)。
      Returns:
      the adjuster | 调整器
    • lastDayOfWeek

      public static TemporalAdjuster lastDayOfWeek(DayOfWeek lastDayOfWeek)
      Returns the last day of week adjuster for specific last day. 返回指定末日的周末日调整器。
      Parameters:
      lastDayOfWeek - the last day of week | 周末日
      Returns:
      the adjuster | 调整器
    • nextWorkday

      public static TemporalAdjuster nextWorkday()
      Returns the next workday adjuster (skips weekends). 返回下一个工作日调整器(跳过周末)。
      Returns:
      the adjuster | 调整器
    • previousWorkday

      public static TemporalAdjuster previousWorkday()
      Returns the previous workday adjuster (skips weekends). 返回上一个工作日调整器(跳过周末)。
      Returns:
      the adjuster | 调整器
    • nextOrSameWorkday

      public static TemporalAdjuster nextOrSameWorkday()
      Returns the next or same workday adjuster. 返回下一个或相同工作日调整器。
      Returns:
      the adjuster | 调整器
    • plusWorkdays

      public static TemporalAdjuster plusWorkdays(int days)
      Returns an adjuster that adds workdays. 返回添加工作日的调整器。
      Parameters:
      days - number of workdays to add | 要添加的工作日数
      Returns:
      the adjuster | 调整器
    • minusWorkdays

      public static TemporalAdjuster minusWorkdays(int days)
      Returns an adjuster that subtracts workdays. 返回减去工作日的调整器。
      Parameters:
      days - number of workdays to subtract | 要减去的工作日数
      Returns:
      the adjuster | 调整器
    • startOfDay

      public static TemporalAdjuster startOfDay()
      Returns the start of day adjuster (00:00:00.000000000). 返回日初调整器(00:00:00.000000000)。
      Returns:
      the adjuster | 调整器
    • endOfDay

      public static TemporalAdjuster endOfDay()
      Returns the end of day adjuster (23:59:59.999999999). 返回日末调整器(23:59:59.999999999)。
      Returns:
      the adjuster | 调整器
    • noon

      public static TemporalAdjuster noon()
      Returns the noon adjuster (12:00:00). 返回正午调整器(12:00:00)。
      Returns:
      the adjuster | 调整器
    • atHour

      public static TemporalAdjuster atHour(int hour)
      Returns an adjuster to specific hour. 返回指定小时调整器。
      Parameters:
      hour - the hour (0-23) | 小时(0-23)
      Returns:
      the adjuster | 调整器
    • compose

      public static TemporalAdjuster compose(TemporalAdjuster... adjusters)
      Composes multiple adjusters into one. 将多个调整器组合成一个。
      Parameters:
      adjusters - the adjusters to compose | 要组合的调整器
      Returns:
      the composite adjuster | 组合调整器
    • andThen

      public static TemporalAdjuster andThen(TemporalAdjuster first, TemporalAdjuster second)
      Returns an adjuster that applies first adjuster then second. 返回先应用第一个调整器再应用第二个的调整器。
      Parameters:
      first - the first adjuster | 第一个调整器
      second - the second adjuster | 第二个调整器
      Returns:
      the composite adjuster | 组合调整器
    • of

      public static TemporalAdjuster of(TemporalAdjuster adjuster)
      Creates adjuster from lambda. 从lambda创建调整器。
      Parameters:
      adjuster - the adjuster function | 调整器函数
      Returns:
      the adjuster | 调整器