Class DateBuilder

java.lang.Object
org.miaixz.bus.core.center.date.builder.DateBuilder

public final class DateBuilder extends Object
DateBuilder类用于构建和操作日期 该类提供了多个方法来设置年、月、日等日期字段,以及获取构建的日期对象 它是不可变的,因此每个设置方法都会返回一个新的DateBuilder实例
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • DateBuilder

      public DateBuilder()
  • Method Details

    • of

      public static DateBuilder of()
      创建并返回一个DateBuilder实例
      Returns:
      一个新的DateBuilder实例
    • getYear

      public int getYear()
      获取年份
      Returns:
      返回设置的年份
    • setYear

      public DateBuilder setYear(int year)
      设置年份。
      Parameters:
      year - 要设置的年份
      Returns:
      返回DateBuilder实例,支持链式调用
    • getMonth

      public int getMonth()
      获取月份
      Returns:
      返回设置的月份
    • setMonth

      public DateBuilder setMonth(int month)
      设置月份
      Parameters:
      month - 要设置的月份
      Returns:
      this
    • getWeek

      public int getWeek()
      获取当前周数的方法
      Returns:
      int 返回当前的周数
    • setWeek

      public DateBuilder setWeek(int week)
      设置日期构建器的周数
      Parameters:
      week - 指定的周数,通常用于构建具体的日期对象
      Returns:
      this
    • getDay

      public int getDay()
      获取当前日期对象中的日部分
      Returns:
      返回一个整数,表示当前日期中的日
    • setDay

      public DateBuilder setDay(int day)
      设置日期对象中的日部分
      Parameters:
      day - 指定要设置的日,必须为整数
      Returns:
      this
    • getHour

      public int getHour()
      获取当前日期对象中的小时数
      Returns:
      小时数,返回值类型为int
    • setHour

      public DateBuilder setHour(int hour)
      设置日期对象中的小时数
      Parameters:
      hour - 要设置的小时数,必须为整数
      Returns:
      this
    • getMinute

      public int getMinute()
      获取当前日期构建器中的分钟数
      Returns:
      返回设置的分钟数,类型为int
    • setMinute

      public DateBuilder setMinute(int minute)
      设置日期构建器中的分钟数
      Parameters:
      minute - 要设置的分钟数,必须为整数
      Returns:
      this。
    • getSecond

      public int getSecond()
      获取当前日期时间对象中的秒数
      Returns:
      返回当前日期时间对象中的秒数
    • setSecond

      public DateBuilder setSecond(int second)
      设置日期时间对象中的秒数
      Parameters:
      second - 指定要设置的秒数
      Returns:
      this
    • getNs

      public int getNs()
      获取纳秒数
      Returns:
      当前对象的纳秒数
    • setNs

      public DateBuilder setNs(int ns)
      设置纳秒数
      Parameters:
      ns - 要设置的纳秒数
      Returns:
      this
    • getUnixsecond

      public long getUnixsecond()
      获取Unix时间戳(秒)
      Returns:
      当前对象的Unix时间戳(以秒为单位)
    • setUnixsecond

      public DateBuilder setUnixsecond(long unixsecond)
      设置Unix时间戳(秒)
      Parameters:
      unixsecond - 要设置的Unix时间戳(以秒为单位)
      Returns:
      this
    • isZoneOffsetSetted

      public boolean isZoneOffsetSetted()
      检查时区偏移量是否已设置
      Returns:
      如果时区偏移量已设置则返回true,否则返回false
    • setZoneOffsetSetted

      public DateBuilder setZoneOffsetSetted(boolean zoneOffsetSetted)
      设置时区偏移量是否已设置的状态
      Parameters:
      zoneOffsetSetted - 指定时区偏移量是否已设置的状态
      Returns:
      this
    • getZoneOffset

      public int getZoneOffset()
      获取时区偏移量
      Returns:
      返回设置的时区偏移量
    • setZoneOffset

      public DateBuilder setZoneOffset(int zoneOffset)
      设置时区偏移量
      Parameters:
      zoneOffset - 要设置的时区偏移量
      Returns:
      this
    • getZone

      public TimeZone getZone()
      获取时区
      Returns:
      返回设置的时区
    • setZone

      public DateBuilder setZone(TimeZone zone)
      设置时区
      Parameters:
      zone - 要设置的时区
      Returns:
      this
    • isAm

      public boolean isAm()
      检查当前是否为上午
      Returns:
      如果当前设置为上午则返回true,否则返回false
    • setAm

      public DateBuilder setAm(boolean am)
      设置是否为上午的状态
      Parameters:
      am - 指定是否为上午的状态
      Returns:
      this
    • isPm

      public boolean isPm()
      检查当前是否为下午
      Returns:
      如果当前设置为下午则返回true,否则返回false
    • setPm

      public DateBuilder setPm(boolean pm)
      设置是否为下午的状态
      Parameters:
      pm - 指定是否为下午的状态
      Returns:
      this
    • reset

      public DateBuilder reset()
      重置所有值为默认值
      Returns:
      this
    • toDate

      public Date toDate()
      将当前时间对象转换为Date类型。此方法根据是否设置了时区偏移量使用不同的转换策略
      • 如果时区偏移量未设置,则将时间转换为 Calendar 对象后获取其 Date 表现形式
      • 如果时区偏移量已设置,则直接转换为 OffsetDateTime 对象,进一步转换为 Instant 对象,最后转换为 Date 对象返回
      Returns:
      Date 表示当前时间的 Date 对象
    • toCalendar

      public Calendar toCalendar()
      将当前对象的日期时间信息转换为Calendar实例。 如果`unixsecond`不为0,将根据unix时间戳(秒)和纳秒偏移量构造Calendar。 否则,根据提供的时区信息`zone`或`zoneOffset`来设置Calendar的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。
      Returns:
      Calendar 根据当前日期时间信息构建的Calendar实例。
      Throws:
      DateTimeException - 如果时区偏移量无法转换为有效的时区ID,则抛出异常。