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()获取当前日期对象中的小时数int获取当前日期构建器中的分钟数intgetMonth()获取月份intgetNs()获取纳秒数int获取当前日期时间对象中的秒数long获取Unix时间戳(秒)intgetWeek()获取当前周数的方法intgetYear()获取年份getZone()获取时区int获取时区偏移量booleanisAm()检查当前是否为上午booleanisPm()检查当前是否为下午boolean检查时区偏移量是否已设置static DateBuilderof()创建并返回一个DateBuilder实例reset()重置所有值为默认值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的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。toDate()将当前时间对象转换为Date类型。此方法根据是否设置了时区偏移量使用不同的转换策略 如果时区偏移量未设置,则将时间转换为 Calendar 对象后获取其 Date 表现形式 如果时区偏移量已设置,则直接转换为 OffsetDateTime 对象,进一步转换为 Instant 对象,最后转换为 Date 对象返回
-
Constructor Details
-
DateBuilder
public DateBuilder()
-
-
Method Details
-
of
创建并返回一个DateBuilder实例- Returns:
- 一个新的DateBuilder实例
-
getYear
public int getYear()获取年份- Returns:
- 返回设置的年份
-
setYear
设置年份。- Parameters:
year- 要设置的年份- Returns:
- 返回DateBuilder实例,支持链式调用
-
getMonth
public int getMonth()获取月份- Returns:
- 返回设置的月份
-
setMonth
设置月份- Parameters:
month- 要设置的月份- Returns:
- this
-
getWeek
public int getWeek()获取当前周数的方法- Returns:
- int 返回当前的周数
-
setWeek
设置日期构建器的周数- Parameters:
week- 指定的周数,通常用于构建具体的日期对象- 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
-
getNs
public int getNs()获取纳秒数- Returns:
- 当前对象的纳秒数
-
setNs
设置纳秒数- Parameters:
ns- 要设置的纳秒数- Returns:
- this
-
getUnixsecond
public long getUnixsecond()获取Unix时间戳(秒)- Returns:
- 当前对象的Unix时间戳(以秒为单位)
-
setUnixsecond
设置Unix时间戳(秒)- Parameters:
unixsecond- 要设置的Unix时间戳(以秒为单位)- Returns:
- this
-
isZoneOffsetSetted
public boolean isZoneOffsetSetted()检查时区偏移量是否已设置- Returns:
- 如果时区偏移量已设置则返回true,否则返回false
-
setZoneOffsetSetted
设置时区偏移量是否已设置的状态- Parameters:
zoneOffsetSetted- 指定时区偏移量是否已设置的状态- 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
将当前时间对象转换为Date类型。此方法根据是否设置了时区偏移量使用不同的转换策略- 如果时区偏移量未设置,则将时间转换为 Calendar 对象后获取其 Date 表现形式
- 如果时区偏移量已设置,则直接转换为 OffsetDateTime 对象,进一步转换为 Instant 对象,最后转换为 Date 对象返回
- Returns:
- Date 表示当前时间的 Date 对象
-
toCalendar
将当前对象的日期时间信息转换为Calendar实例。 如果`unixsecond`不为0,将根据unix时间戳(秒)和纳秒偏移量构造Calendar。 否则,根据提供的时区信息`zone`或`zoneOffset`来设置Calendar的时区。 最后,设置年、月、日、时、分、秒和毫秒信息。- Returns:
- Calendar 根据当前日期时间信息构建的Calendar实例。
- Throws:
DateTimeException- 如果时区偏移量无法转换为有效的时区ID,则抛出异常。
-