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 Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    获取当前日期对象中的日部分
    int
    获取当前日期对象中的小时数
    int
    获取当前日期构建器中的分钟数
    int
    获取月份
    int
    获取纳秒数
    int
    获取当前日期时间对象中的秒数
    long
    获取Unix时间戳(秒)
    int
    获取当前周数的方法
    int
    获取年份
    获取时区
    int
    获取时区偏移量
    boolean
    检查当前是否为上午
    boolean
    检查当前是否为下午
    boolean
    检查时区偏移量是否已设置
    of()
    创建并返回一个DateBuilder实例
    重置所有值为默认值
    setAm(boolean am)
    设置是否为上午的状态
    setDay(int day)
    设置日期对象中的日部分
    setHour(int hour)
    设置日期对象中的小时数
    setMinute(int minute)
    设置日期构建器中的分钟数
    setMonth(int month)
    设置月份
    setNs(int ns)
    设置纳秒数
    setPm(boolean pm)
    设置是否为下午的状态
    setSecond(int second)
    设置日期时间对象中的秒数
    setUnixsecond(long unixsecond)
    设置Unix时间戳(秒)
    setWeek(int week)
    设置日期构建器的周数
    setYear(int year)
    设置年份。
    设置时区
    setZoneOffset(int zoneOffset)
    设置时区偏移量
    setZoneOffsetSetted(boolean zoneOffsetSetted)
    设置时区偏移量是否已设置的状态
    将当前对象的日期时间信息转换为Calendar实例。 如果`unixsecond`不为0,将根据unix时间戳(秒)和纳秒偏移量构造Calendar。 否则,根据提供的时区信息`zone`或`zoneOffset`来设置Calendar的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。
    将当前时间对象转换为Date类型。此方法根据是否设置了时区偏移量使用不同的转换策略 如果时区偏移量未设置,则将时间转换为 Calendar 对象后获取其 Date 表现形式 如果时区偏移量已设置,则直接转换为 OffsetDateTime 对象,进一步转换为 Instant 对象,最后转换为 Date 对象返回
    将当前对象的日期时间信息转换为LocalDateTime。 此方法根据对象中的时间信息(年、月、日、时、分、秒、纳秒)和时区信息(如果存在), 创建并返回一个LocalDateTime实例。时区信息可以是Unix时间戳中的秒数(unixsecond), 也可以是显式设置的时区偏移量(zoneOffsetSetted),或者使用默认时区(zone != null)。
    将当前对象转换为 OffsetDateTime。 此方法根据 unixsecond、时区偏移量或时区来构建 OffsetDateTime。 如果 unixsecond 大于 0,将使用 unixsecond 和纳秒来创建 UTC 时间。 如果设置了时区偏移量,将使用该偏移量构造 OffsetDateTime。 如果设置了时区,将使用该时区构造 OffsetDateTime。 如果以上信息均未设置,则默认使用 UTC 时间戳 0 创建 OffsetDateTime。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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,则抛出异常。
    • toLocalDateTime

      public LocalDateTime toLocalDateTime()
      将当前对象的日期时间信息转换为LocalDateTime。 此方法根据对象中的时间信息(年、月、日、时、分、秒、纳秒)和时区信息(如果存在), 创建并返回一个LocalDateTime实例。时区信息可以是Unix时间戳中的秒数(unixsecond), 也可以是显式设置的时区偏移量(zoneOffsetSetted),或者使用默认时区(zone != null)。
      Returns:
      LocalDateTime 表示当前对象日期时间的LocalDateTime实例。
    • toOffsetDateTime

      public OffsetDateTime toOffsetDateTime()
      将当前对象转换为 OffsetDateTime。 此方法根据 unixsecond、时区偏移量或时区来构建 OffsetDateTime。 如果 unixsecond 大于 0,将使用 unixsecond 和纳秒来创建 UTC 时间。 如果设置了时区偏移量,将使用该偏移量构造 OffsetDateTime。 如果设置了时区,将使用该时区构造 OffsetDateTime。 如果以上信息均未设置,则默认使用 UTC 时间戳 0 创建 OffsetDateTime。
      Returns:
      OffsetDateTime 表示当前时间的 OffsetDateTime 对象。