Class DateBuilder
java.lang.Object
org.miaixz.bus.core.center.date.builder.DateBuilder
DateBuilder类用于构建和操作日期 该类提供了多个方法来设置年、月、日等日期字段,以及获取构建的日期对象 它是不可变的,因此每个设置方法都会返回一个新的DateBuilder实例
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgetDay()获取当前日期对象中的日部分intgetHour()获取当前日期对象中的小时数long获取时间戳(毫秒)。int获取当前日期构建器中的分钟数intgetMonth()获取月份,从1开始。int获取纳秒数。int获取当前日期时间对象中的秒数long获取Unix时间戳(秒)。intgetWeek()获取当前周数的方法intgetYear()获取年份。getZone()获取时区。int获取时区偏移量。booleanisAm()检查当前是否为上午。booleanisFlag()检查时区偏移量是否已设置。booleanisPm()检查当前是否为下午。static DateBuilderof()创建并返回一个DateBuilder实例。reset()重置所有值为默认值setAm(boolean am) 设置是否为上午的状态。setDay(int day) 设置日期对象中的日部分setFlag(boolean flag) 设置时区偏移量是否已设置的状态。setHour(int hour) 设置日期对象中的小时数setMillisecond(long millisecond) 设置时间戳(毫秒)。setMinute(int minute) 设置日期构建器中的分钟数setMonth(int month) 设置月份,从1开始。setNanosecond(int nanosecond) 设置纳秒数。setPm(boolean pm) 设置是否为下午的状态。setSecond(int second) 设置日期时间对象中的秒数setUnixsecond(long unixsecond) 设置Unix时间戳(秒)。setWeek(int week) 设置日期构建器的周数,ISO8601规范,1代表Monday,2代表Tuesday,以此类推。setYear(int year) 设置年份。设置时区。setZoneOffset(int zoneOffset) 设置时区偏移量。将当前对象的日期时间信息转换为Calendar实例。 如果`unixsecond`不为0,将根据unix时间戳(秒)和纳秒偏移量构造Calendar。 否则,根据提供的时区信息`zone`或`zoneOffset`来设置Calendar的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。toDate()将当前对象的日期时间信息转换为LocalDateTime。 此方法根据对象中的时间信息(年、月、日、时、分、秒、纳秒)和时区信息(如果存在), 创建并返回一个LocalDateTime实例。时区信息可以是Unix时间戳中的秒数(unixsecond), 也可以是显式设置的时区偏移量(zoneOffsetSetted),或者使用默认时区(zone != null)。将当前对象转换为OffsetDateTime。 此方法根据 unixsecond、时区偏移量或时区来构建 OffsetDateTime。 如果 unixsecond 大于 0,将使用 unixsecond 和纳秒来创建 UTC 时间。 如果设置了时区偏移量,将使用该偏移量构造OffsetDateTime。 如果设置了时区,将使用该时区构造OffsetDateTime。 如果以上信息均未设置,则默认使用 UTC 时间戳 0 创建 OffsetDateTime。转换为带时区信息的DateTime此方法用于保留原始时间戳,并且不丢失时区信息
-
Constructor Details
-
DateBuilder
public DateBuilder()构造
-
-
Method Details
-
of
创建并返回一个DateBuilder实例。- Returns:
- this
-
getYear
public int getYear()获取年份。- Returns:
- 返回设置的年份。
-
setYear
设置年份。- Parameters:
year- 要设置的年份- Returns:
- 返回DateBuilder实例,支持链式调用。
-
getMonth
public int getMonth()获取月份,从1开始。- Returns:
- 返回设置的月份,从1开始。
-
setMonth
设置月份,从1开始。- Parameters:
month- 要设置的月份,从1开始。- Returns:
- this
-
getWeek
public int getWeek()获取当前周数的方法- Returns:
- int 返回当前的周数
-
setWeek
设置日期构建器的周数,ISO8601规范,1代表Monday,2代表Tuesday,以此类推。- Parameters:
week- 指定的周数,通常用于构建具体的日期对象,ISO8601规范,1代表Monday,2代表Tuesday,以此类推。- Returns:
- this。
-
getDay
public int getDay()获取当前日期对象中的日部分- Returns:
- 返回一个整数,表示当前日期中的日。
-
setDay
设置日期对象中的日部分- Parameters:
day- 指定要设置的日,必须为整数。- Returns:
- this
-
getHour
public int getHour()获取当前日期对象中的小时数- Returns:
- 小时数,返回值类型为int。
-
setHour
设置日期对象中的小时数- Parameters:
hour- 要设置的小时数,必须为整数。- Returns:
- this
-
getMinute
public int getMinute()获取当前日期构建器中的分钟数- Returns:
- 返回设置的分钟数,类型为int。
-
setMinute
设置日期构建器中的分钟数- Parameters:
minute- 要设置的分钟数,必须为整数。- Returns:
- this。
-
getSecond
public int getSecond()获取当前日期时间对象中的秒数- Returns:
- 返回当前日期时间对象中的秒数
-
setSecond
设置日期时间对象中的秒数- Parameters:
second- 指定要设置的秒数- Returns:
- this
-
getNanosecond
public int getNanosecond()获取纳秒数。- Returns:
- 当前对象的纳秒数。
-
setNanosecond
设置纳秒数。- Parameters:
nanosecond- 要设置的纳秒数。- Returns:
- this
-
getUnixsecond
public long getUnixsecond()获取Unix时间戳(秒)。- Returns:
- 当前对象的Unix时间戳(以秒为单位)。
-
setUnixsecond
设置Unix时间戳(秒)。- Parameters:
unixsecond- 要设置的Unix时间戳(以秒为单位)。- Returns:
- this
-
getMillisecond
public long getMillisecond()获取时间戳(毫秒)。- Returns:
- 当前对象的时间戳(以毫秒为单位)。
-
setMillisecond
设置时间戳(毫秒)。- Parameters:
millisecond- 要设置的时间戳(以毫秒为单位)。- Returns:
- this
-
isFlag
public boolean isFlag()检查时区偏移量是否已设置。- Returns:
- 如果时区偏移量已设置则返回true,否则返回false。
-
setFlag
设置时区偏移量是否已设置的状态。- Parameters:
flag- 指定时区偏移量是否已设置的状态。- Returns:
- this
-
getZoneOffset
public int getZoneOffset()获取时区偏移量。- Returns:
- 返回设置的时区偏移量。
-
setZoneOffset
设置时区偏移量。- Parameters:
zoneOffset- 要设置的时区偏移量。- Returns:
- this
-
getZone
获取时区。- Returns:
- 返回设置的时区。
-
setZone
设置时区。- Parameters:
zone- 要设置的时区。- Returns:
- this
-
isAm
public boolean isAm()检查当前是否为上午。- Returns:
- 如果当前设置为上午则返回true,否则返回false。
-
setAm
设置是否为上午的状态。- Parameters:
am- 指定是否为上午的状态。- Returns:
- this
-
isPm
public boolean isPm()检查当前是否为下午。- Returns:
- 如果当前设置为下午则返回true,否则返回false。
-
setPm
设置是否为下午的状态。- Parameters:
pm- 指定是否为下午的状态。- Returns:
- this
-
reset
重置所有值为默认值- Returns:
- this
-
toDate
将当前时间对象转换为DateTime类型。此方法根据是否设置了时区偏移量使用不同的转换策略。 。- Returns:
- DateTime 表示当前时间的 DateTime 对象。
-
toZonedDateTime
转换为带时区信息的DateTime此方法用于保留原始时间戳,并且不丢失时区信息- Returns:
DateTime
-
toCalendar
将当前对象的日期时间信息转换为Calendar实例。 如果`unixsecond`不为0,将根据unix时间戳(秒)和纳秒偏移量构造Calendar。 否则,根据提供的时区信息`zone`或`zoneOffset`来设置Calendar的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。- Returns:
- Calendar 根据当前日期时间信息构建的Calendar实例。
- Throws:
DateTimeException- 如果时区偏移量无法转换为有效的时区ID,则抛出异常。
-
toLocalDateTime
将当前对象的日期时间信息转换为LocalDateTime。 此方法根据对象中的时间信息(年、月、日、时、分、秒、纳秒)和时区信息(如果存在), 创建并返回一个LocalDateTime实例。时区信息可以是Unix时间戳中的秒数(unixsecond), 也可以是显式设置的时区偏移量(zoneOffsetSetted),或者使用默认时区(zone != null)。- Returns:
- LocalDateTime 表示当前对象日期时间的LocalDateTime实例。
-
toOffsetDateTime
将当前对象转换为OffsetDateTime。 此方法根据 unixsecond、时区偏移量或时区来构建 OffsetDateTime。 如果 unixsecond 大于 0,将使用 unixsecond 和纳秒来创建 UTC 时间。 如果设置了时区偏移量,将使用该偏移量构造OffsetDateTime。 如果设置了时区,将使用该时区构造OffsetDateTime。 如果以上信息均未设置,则默认使用 UTC 时间戳 0 创建 OffsetDateTime。- Returns:
- OffsetDateTime 表示当前时间的 OffsetDateTime 对象。
-