- 所有已实现的接口:
-
Serializable
,Comparable<LocalTime>
,Temporal
,TemporalAccessor
,TemporalAdjuster
10:15:30
。
LocalTime
是一个不可变的日期时间对象,表示时间,通常被视为时分秒。时间精确到纳秒。例如,值"13:45.30.123456789"可以存储在LocalTime
中。
此类不存储或表示日期或时区。相反,它是对墙上时钟上看到的当地时间的描述。它不能表示时间线上的瞬时,除非有额外的信息,如偏移量或时区。
ISO-8601日历系统是当今世界大部分地区使用的现代公民日历系统。此API假定所有日历系统都使用相同的表示形式,即这个类,用于表示一天中的时间。
这是一个基于值的类;程序员应该将相等的实例视为可互换的,不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。应该使用equals
方法进行比较。
- 实现要求:
- 此类是不可变的且线程安全的。
- 自版本:
- 1.8
- 参见:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionadjustInto
(Temporal temporal) 调整指定的时间对象,使其具有与此对象相同的时间。将此时间与日期组合以创建一个LocalDateTime
。atOffset
(ZoneOffset offset) 将此时间与偏移量组合以创建一个OffsetTime
。int
将此时间与另一个时间进行比较。boolean
检查此时间是否等于另一个时间。format
(DateTimeFormatter formatter) 使用指定的格式化程序格式化此时间。static LocalTime
from
(TemporalAccessor temporal) 从时间对象获取LocalTime
的实例。int
get
(TemporalField field) 从此时间获取指定字段的值作为int
。int
getHour()
获取小时字段。long
getLong
(TemporalField field) 从此时间获取指定字段的值作为long
。int
获取分钟字段。int
getNano()
获取纳秒字段。int
获取秒字段。int
hashCode()
此时间的哈希码。boolean
检查此时间是否在指定时间之后。boolean
检查此时间是否在指定时间之前。boolean
isSupported
(TemporalField field) 检查是否支持指定字段。boolean
isSupported
(TemporalUnit unit) 检查是否支持指定单位。minus
(long amountToSubtract, TemporalUnit unit) 返回减去指定数量后的此时间的副本。minus
(TemporalAmount amountToSubtract) 返回减去指定数量后的此时间的副本。minusHours
(long hoursToSubtract) 返回减去指定小时数后的此LocalTime
的副本。minusMinutes
(long minutesToSubtract) 返回减去指定分钟数后的此LocalTime
的副本。minusNanos
(long nanosToSubtract) 返回减去指定纳秒数后的此LocalTime
的副本。minusSeconds
(long secondsToSubtract) 返回减去指定秒数后的此LocalTime
的副本。static LocalTime
now()
从默认时区的系统时钟获取当前时间。static LocalTime
从指定时钟获取当前时间。static LocalTime
从指定时区的系统时钟获取当前时间。static LocalTime
of
(int hour, int minute) 从小时和分钟获取LocalTime
的实例。static LocalTime
of
(int hour, int minute, int second) 从小时、分钟和秒获取LocalTime
的实例。static LocalTime
of
(int hour, int minute, int second, int nanoOfSecond) 从小时、分钟、秒和纳秒获取LocalTime
的实例。static LocalTime
从Instant
和区域ID获取LocalTime
的实例。static LocalTime
ofNanoOfDay
(long nanoOfDay) 从一天中的纳秒值获取LocalTime
的实例。static LocalTime
ofSecondOfDay
(long secondOfDay) 从一天中的秒值获取LocalTime
的实例。static LocalTime
parse
(CharSequence text) 从文本字符串(如10:15
)获取LocalTime
的实例。static LocalTime
parse
(CharSequence text, DateTimeFormatter formatter) 使用特定格式化程序从文本字符串获取LocalTime
的实例。plus
(long amountToAdd, TemporalUnit unit) 返回添加指定数量后的此时间的副本。plus
(TemporalAmount amountToAdd) 返回添加指定数量后的此时间的副本。plusHours
(long hoursToAdd) 返回添加指定小时数后的此LocalTime
的副本。plusMinutes
(long minutesToAdd) 返回添加指定分钟数后的此LocalTime
的副本。plusNanos
(long nanosToAdd) 返回添加指定纳秒数后的此LocalTime
的副本。plusSeconds
(long secondstoAdd) 返回添加指定秒数后的此LocalTime
的副本。<R> R
query
(TemporalQuery<R> query) 使用指定查询查询此时间。range
(TemporalField field) 获取指定字段的有效值范围。long
toEpochSecond
(LocalDate date, ZoneOffset offset) 将此LocalTime
转换为自1970-01-01T00:00:00Z时代以来的秒数。long
从0
到24 * 60 * 60 * 1,000,000,000 - 1
提取一天中的纳秒时间。int
从0
到24 * 60 * 60 - 1
提取一天中的秒时间。toString()
将此时间输出为String
,例如10:15
。truncatedTo
(TemporalUnit unit) 返回截断时间后的此LocalTime
的副本。long
until
(Temporal endExclusive, TemporalUnit unit) 计算到另一个时间的时间量,以指定单位表示。with
(TemporalAdjuster adjuster) 返回调整后的此时间的副本。with
(TemporalField field, long newValue) 返回将指定字段设置为新值后的此时间的副本。withHour
(int hour) 返回将小时字段更改后的此LocalTime
的副本。withMinute
(int minute) 返回将分钟字段更改后的此LocalTime
的副本。withNano
(int nanoOfSecond) 返回将纳秒字段更改后的此LocalTime
的副本。withSecond
(int second) 返回将秒字段更改后的此LocalTime
的副本。
-
Field Details
-
MIN
支持的最小LocalTime
,'00:00'。这是一天开始时的午夜时间。 -
MAX
支持的最大LocalTime
,'23:59:59.999999999'。这是一天结束前的午夜时间。 -
MIDNIGHT
一天开始时的午夜时间,'00:00'。 -
NOON
中午时间,'12:00'。
-
-
Method Details
-
now
从默认时区的系统时钟获取当前时间。这将查询默认时区中的
系统时钟
以获取当前时间。使用此方法将阻止使用替代时钟进行测试,因为时钟是硬编码的。
- 返回:
- 使用系统时钟和默认时区获取的当前时间,非空
-
now
从指定时区的系统时钟获取当前时间。这将查询
系统时钟
以获取当前时间。指定时区避免依赖默认时区。使用此方法将阻止使用替代时钟进行测试,因为时钟是硬编码的。
- 参数:
-
zone
- 要使用的区域ID,非空 - 返回:
- 使用系统时钟获取的当前时间,非空
-
now
从指定时钟获取当前时间。这将查询指定的时钟以获取当前时间。使用此方法允许使用替代时钟进行测试。可以使用
依赖注入
引入替代时钟。- 参数:
-
clock
- 要使用的时钟,非空 - 返回:
- 当前时间,非空
-
of
从小时和分钟获取LocalTime
的实例。返回具有指定小时和分钟的
LocalTime
。秒和纳秒字段将设置为零。- 参数:
-
hour
- 要表示的一天中的小时,从0到23 -
minute
- 要表示的小时中的分钟,从0到59 - 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围
-
of
从小时、分钟和秒获取LocalTime
的实例。返回具有指定小时、分钟和秒的
LocalTime
。纳秒字段将设置为零。- 参数:
-
hour
- 要表示的一天中的小时,从0到23 -
minute
- 要表示的小时中的分钟,从0到59 -
second
- 要表示的分钟中的秒,从0到59 - 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围
-
of
从小时、分钟、秒和纳秒获取LocalTime
的实例。返回具有指定小时、分钟、秒和纳秒的
LocalTime
。- 参数:
-
hour
- 要表示的小时,范围从0到23 -
minute
- 要表示的分钟,范围从0到59 -
second
- 要表示的秒,范围从0到59 -
nanoOfSecond
- 要表示的纳秒,范围从0到999,999,999 - 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围
-
ofInstant
从Instant
和区域ID获取LocalTime
的实例。根据指定的即时创建本地时间。首先,使用区域ID和即时获取与UTC/Greenwich的偏移量,这很简单,因为每个即时只有一个有效的偏移量。然后,使用即时和偏移量计算本地时间。
- 参数:
-
instant
- 要从中创建时间的即时,非空 -
zone
- 时区,可以是偏移量,非空 - 返回:
- 本地时间,非空
- 自:
- 9
-
ofSecondOfDay
从一天中的秒值获取LocalTime
的实例。返回具有指定一天中秒数的
LocalTime
。纳秒字段将设置为零。- 参数:
-
secondOfDay
- 一天中的秒数,从0
到24 * 60 * 60 - 1
- 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果秒数值无效
-
ofNanoOfDay
从一天中的纳秒值获取LocalTime
的实例。返回具有指定一天中纳秒数的
LocalTime
。- 参数:
-
nanoOfDay
- 一天中的纳秒数,从0
到24 * 60 * 60 * 1,000,000,000 - 1
- 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果一天中的纳秒值无效
-
from
从时间对象获取LocalTime
的实例。根据指定的时间获取本地时间。
TemporalAccessor
表示一组任意的日期和时间信息,此工厂将其转换为LocalTime
的实例。转换使用
TemporalQueries.localTime()
查询,依赖于提取NANO_OF_DAY
字段。此方法与函数接口
TemporalQuery
的签名匹配,允许通过方法引用LocalTime::from
来使用作为查询。- 参数:
-
temporal
- 要转换的时间对象,非空 - 返回:
- 本地时间,非空
- 抛出:
-
DateTimeException
- 如果无法转换为LocalTime
-
parse
- 参数:
-
text
- 要解析的文本,例如"10:15:30",非空 - 返回:
- 解析的本地时间,非空
- 抛出:
-
DateTimeParseException
- 如果无法解析文本
-
parse
使用特定格式化程序从文本字符串获取LocalTime
的实例。使用格式化程序解析文本,返回时间。
- 参数:
-
text
- 要解析的文本,非空 -
formatter
- 要使用的格式化程序,非空 - 返回:
- 解析的本地时间,非空
- 抛出:
-
DateTimeParseException
- 如果无法解析文本
-
isSupported
检查是否支持指定字段。检查此时间是否可以查询指定字段。如果为false,则调用
range
、get
和with(TemporalField, long)
方法将抛出异常。如果字段是
ChronoField
,则在此处实现查询。支持的字段包括:NANO_OF_SECOND
NANO_OF_DAY
MICRO_OF_SECOND
MICRO_OF_DAY
MILLI_OF_SECOND
MILLI_OF_DAY
SECOND_OF_MINUTE
SECOND_OF_DAY
MINUTE_OF_HOUR
MINUTE_OF_DAY
HOUR_OF_AMPM
CLOCK_HOUR_OF_AMPM
HOUR_OF_DAY
CLOCK_HOUR_OF_DAY
AMPM_OF_DAY
ChronoField
实例将返回false。如果字段不是
ChronoField
,则通过调用TemporalField.isSupportedBy(TemporalAccessor)
传递this
作为参数来获得此方法的结果。字段是否受支持由字段确定。-
在接口
TemporalAccessor
中指定: -
isSupported
- 参数:
-
field
- 要检查的字段,null返回false - 返回:
- 如果此时间支持该字段,则为true,否则为false
-
isSupported
检查是否支持指定单位。检查指定单位是否可以添加到此时间或从此时间减去。如果为false,则调用
plus(long, TemporalUnit)
和minus
方法将抛出异常。如果单位是
ChronoUnit
,则在此处实现查询。支持的单位包括:NANOS
MICROS
MILLIS
SECONDS
MINUTES
HOURS
HALF_DAYS
ChronoUnit
实例将返回false。如果单位不是
ChronoUnit
,则通过调用TemporalUnit.isSupportedBy(Temporal)
传递this
作为参数来获得此方法的结果。单位是否受支持由单位确定。-
在接口
Temporal
中指定: -
isSupported
- 参数:
-
unit
- 要检查的单位,null返回false - 返回:
- 如果可以添加/减去单位,则为true,否则为false
-
range
获取指定字段的有效值范围。范围对象表示字段的最小和最大有效值。此时间用于增强返回范围的准确性。如果无法返回范围,因为不支持字段或出于其他原因,将抛出异常。
如果字段是
ChronoField
,则在此处实现查询。支持的字段
将返回适当的范围实例。所有其他ChronoField
实例将抛出UnsupportedTemporalTypeException
。如果字段不是
ChronoField
,则通过调用TemporalField.rangeRefinedBy(TemporalAccessor)
传递this
作为参数来获得此方法的结果。范围是否可获取由字段确定。-
在接口
TemporalAccessor
中指定: -
range
- 参数:
-
field
- 要查询范围的字段,非空 - 返回:
- 字段的有效值范围,非空
- 抛出:
-
DateTimeException
- 如果无法获取字段的范围 -
UnsupportedTemporalTypeException
- 如果不支持字段
-
在接口
-
get
获取此时间的指定字段的值作为int
。查询此时间的指定字段的值。返回的值始终在字段的有效值范围内。如果由于字段不受支持或其他原因而无法返回值,则会抛出异常。
如果字段是一个
ChronoField
,则查询在此处实现。基于此时间,支持的字段
将返回有效值,除了NANO_OF_DAY
和MICRO_OF_DAY
,它们太大无法适应int
并抛出UnsupportedTemporalTypeException
。所有其他ChronoField
实例将抛出UnsupportedTemporalTypeException
。如果字段不是
ChronoField
,则通过调用TemporalField.getFrom(TemporalAccessor)
并将this
作为参数传递来获取此方法的结果。值是否可以获取以及值代表什么由字段决定。- 指定者:
-
get
在接口TemporalAccessor
- 参数:
-
field
- 要获取的字段,不能为空 - 返回:
- 字段的值
- 抛出:
-
DateTimeException
- 如果无法获取字段的值或值超出字段的有效值范围 -
UnsupportedTemporalTypeException
- 如果不支持该字段或值范围超过int
-
ArithmeticException
- 如果发生数值溢出
-
getLong
获取此时间的指定字段的值作为long
。查询此时间的指定字段的值。如果由于字段不受支持或其他原因而无法返回值,则会抛出异常。
如果字段是一个
ChronoField
,则查询在此处实现。基于此时间,支持的字段
将返回有效值。所有其他ChronoField
实例将抛出UnsupportedTemporalTypeException
。如果字段不是
ChronoField
,则通过调用TemporalField.getFrom(TemporalAccessor)
并将this
作为参数传递来获取此方法的结果。值是否可以获取以及值代表什么由字段决定。- 指定者:
-
getLong
在接口TemporalAccessor
- 参数:
-
field
- 要获取的字段,不能为空 - 返回:
- 字段的值
- 抛出:
-
DateTimeException
- 如果无法获取字段的值 -
UnsupportedTemporalTypeException
- 如果不支持该字段 -
ArithmeticException
- 如果发生数值溢出
-
getHour
public int getHour()获取小时字段。- 返回:
- 小时,从0到23
-
getMinute
public int getMinute()获取分钟字段。- 返回:
- 分钟,从0到59
-
getSecond
public int getSecond()获取秒字段。- 返回:
- 秒,从0到59
-
getNano
public int getNano()获取秒的纳秒字段。- 返回:
- 纳秒,从0到999,999,999
-
with
返回此时间的调整副本。返回一个基于此时间调整后的
LocalTime
。调整是使用指定的调整策略对象进行的。阅读调整器的文档以了解将进行的调整。简单的调整器可能只是设置一个字段,例如小时字段。更复杂的调整器可能将时间设置为一天中的最后一个小时。
此方法的结果是通过在指定的调整器上调用
TemporalAdjuster.adjustInto(Temporal)
方法并将this
作为参数传递来获得的。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
with
在接口Temporal
- 参数:
-
adjuster
- 要使用的调整器,不能为空 - 返回:
-
基于
this
进行调整后的LocalTime
,不能为空 - 抛出:
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数值溢出
-
with
返回具有指定字段设置为新值的此时间的副本。返回一个基于此时间的
LocalTime
,其中指定字段的值已更改。这可用于更改任何支持的字段,例如小时、分钟或秒。如果无法设置值,因为字段不受支持或其他原因,则会抛出异常。如果字段是一个
ChronoField
,则在此处实现调整。支持的字段的行为如下:NANO_OF_SECOND
- 返回具有指定纳秒的LocalTime
。小时、分钟和秒将保持不变。NANO_OF_DAY
- 返回具有指定纳秒的LocalTime
。这完全替换时间,等效于ofNanoOfDay(long)
。MICRO_OF_SECOND
- 返回具有指定微秒乘以1,000的纳秒替换的LocalTime
。小时、分钟和秒将保持不变。MICRO_OF_DAY
- 返回具有指定微秒的LocalTime
。这完全替换时间,等效于使用ofNanoOfDay(long)
乘以1,000的微秒。MILLI_OF_SECOND
- 返回具有指定毫秒乘以1,000,000的纳秒替换的LocalTime
。小时、分钟和秒将保持不变。MILLI_OF_DAY
- 返回具有指定毫秒的LocalTime
。这完全替换时间,等效于使用ofNanoOfDay(long)
乘以1,000,000的毫秒。SECOND_OF_MINUTE
- 返回具有指定分钟的LocalTime
。小时、分钟和纳秒将保持不变。SECOND_OF_DAY
- 返回具有指定一天中的秒的LocalTime
。纳秒将保持不变。MINUTE_OF_HOUR
- 返回具有指定小时的LocalTime
。小时、秒和纳秒将保持不变。MINUTE_OF_DAY
- 返回具有指定一天中的分钟的LocalTime
。秒和纳秒将保持不变。HOUR_OF_AMPM
- 返回具有指定上午/下午小时的LocalTime
。上午/下午、分钟、秒和纳秒将保持不变。CLOCK_HOUR_OF_AMPM
- 返回具有指定上午/下午时钟小时的LocalTime
。上午/下午、分钟、秒和纳秒将保持不变。HOUR_OF_DAY
- 返回具有指定一天中的小时的LocalTime
。分钟、秒和纳秒将保持不变。CLOCK_HOUR_OF_DAY
- 返回具有指定时钟小时的LocalTime
。分钟、秒和纳秒将保持不变。AMPM_OF_DAY
- 返回具有指定上午/下午的LocalTime
。上午/下午小时、分钟、秒和纳秒将保持不变。
在所有情况下,如果新值超出字段的有效值范围,则将抛出
DateTimeException
。所有其他
ChronoField
实例将抛出UnsupportedTemporalTypeException
。如果字段不是
ChronoField
,则通过调用TemporalField.adjustInto(Temporal, long)
并将this
作为参数传递来获取此方法的结果。在这种情况下,字段确定是否以及如何调整时刻。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
with
在接口Temporal
中指定 - 参数:
-
field
- 要在结果中设置的字段,不能为空 -
newValue
- 结果中字段的新值 - 返回:
-
基于
this
的LocalTime
,其中指定字段已设置,不能为空 - 抛出:
-
DateTimeException
- 如果无法设置字段 -
UnsupportedTemporalTypeException
- 如果不支持该字段 -
ArithmeticException
- 如果发生数值溢出
-
withHour
返回一个修改了小时的LocalTime
的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
-
hour
- 要设置的小时数,从0到23 - 返回:
-
基于此时间的
LocalTime
,具有请求的小时数,不能为空 - 抛出:
-
DateTimeException
- 如果小时值无效
-
withMinute
返回一个修改了分钟的LocalTime
的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
-
minute
- 要设置的分钟数,从0到59 - 返回:
-
基于此时间的
LocalTime
,具有请求的分钟数,不能为空 - 抛出:
-
DateTimeException
- 如果分钟值无效
-
withSecond
返回一个修改了秒数的LocalTime
的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
-
second
- 要设置的秒数,从0到59 - 返回:
-
基于此时间的
LocalTime
,具有请求的秒数,不能为空 - 抛出:
-
DateTimeException
- 如果秒数无效
-
withNano
返回一个修改了纳秒数的LocalTime
的副本。此实例是不可变的,不受此方法调用的影响。
- 参数:
-
nanoOfSecond
- 要设置的纳秒数,从0到999,999,999 - 返回:
-
基于此时间的
LocalTime
,具有请求的纳秒数,不能为空 - 抛出:
-
DateTimeException
- 如果纳秒值无效
-
truncatedTo
返回一个截断了时间的LocalTime
的副本。截断返回原始时间的副本,其中小于指定单位的字段设置为零。例如,使用
minutes
单位进行截断将会将秒数和纳秒字段设置为零。单位必须具有可在标准日长度内被整除的持续时间。这包括所有提供的时间单位在
ChronoUnit
和DAYS
上。其他单位会抛出异常。此实例是不可变的,不受此方法调用的影响。
- 参数:
-
unit
- 要截断到的单位,不能为空 - 返回:
-
基于此时间的
LocalTime
,已截断时间,不能为空 - 抛出:
-
DateTimeException
- 如果无法截断 -
UnsupportedTemporalTypeException
- 如果不支持该单位
-
plus
返回一个添加了指定数量的时间的副本。这将返回一个
LocalTime
,基于此时间,添加了指定数量的时间。数量通常是Duration
,但也可以是实现了TemporalAmount
接口的任何其他类型。通过调用
TemporalAmount.addTo(Temporal)
将计算委托给数量对象。数量的实现可以以任何希望的方式实现添加,但通常会回调plus(long, TemporalUnit)
。请参阅数量实现的文档,以确定是否可以成功添加。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
plus
在接口Temporal
中指定 - 参数:
-
amountToAdd
- 要添加的数量,不能为空 - 返回:
-
基于此时间的
LocalTime
,已进行添加,不能为空 - 抛出:
-
DateTimeException
- 如果无法进行添加 -
ArithmeticException
- 如果发生数值溢出
-
plus
返回一个添加了指定数量的时间的副本。这将返回一个
LocalTime
,基于此时间,以单位为单位添加了数量。如果无法添加数量,因为不支持该单位或其他原因,将抛出异常。如果字段是
ChronoUnit
,则在此处实现添加。支持的字段行为如下:NANOS
- 返回添加了指定纳秒数的LocalTime
。这等效于plusNanos(long)
。MICROS
- 返回添加了指定微秒数的LocalTime
。这等效于将数量乘以1,000后的plusNanos(long)
。MILLIS
- 返回添加了指定毫秒数的LocalTime
。这等效于将数量乘以1,000,000后的plusNanos(long)
。SECONDS
- 返回添加了指定秒数的LocalTime
。这等效于plusSeconds(long)
。MINUTES
- 返回添加了指定分钟数的LocalTime
。这等效于plusMinutes(long)
。HOURS
- 返回添加了指定小时数的LocalTime
。这等效于plusHours(long)
。HALF_DAYS
- 返回添加了指定半天数的LocalTime
。这等效于将数量乘以12后的plusHours(long)
。
所有其他
ChronoUnit
实例将抛出UnsupportedTemporalTypeException
。如果字段不是
ChronoUnit
,则通过调用TemporalUnit.addTo(Temporal, long)
并将this
作为参数来获取此方法的结果。在这种情况下,单位确定是否以及如何执行添加。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
plus
在接口Temporal
中指定 - 参数:
-
amountToAdd
- 要添加的单位数量,可以为负数 -
unit
- 要添加的单位,不能为空 - 返回:
-
基于此时间的
LocalTime
,已添加指定数量,不能为空 - 抛出:
-
DateTimeException
- 如果无法进行添加 -
UnsupportedTemporalTypeException
- 如果不支持该单位 -
ArithmeticException
- 如果发生数值溢出
-
plusHours
返回一个添加了指定小时数的LocalTime
的副本。将指定的小时数添加到此时间,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
hoursToAdd
- 要添加的小时数,可以为负数 - 返回:
-
基于此时间的
LocalTime
,已添加小时数,不能为空
-
plusMinutes
返回一个添加了指定分钟数的LocalTime
的副本。将指定的分钟数添加到此时间,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
minutesToAdd
- 要添加的分钟数,可以为负数 - 返回:
-
基于此时间的
LocalTime
,已添加分钟数,不能为空
-
plusSeconds
返回一个添加了指定秒数的LocalTime
的副本。将指定的秒数添加到此时间,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
secondstoAdd
- 要添加的秒数,可以为负数 - 返回:
-
基于此时间并添加秒数的
LocalTime
,不为null
-
plusNanos
返回此LocalTime
的副本,并添加指定数量的纳秒。将指定数量的纳秒添加到此时间,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
nanosToAdd
- 要添加的纳秒数,可以为负数 - 返回:
-
基于此时间并添加纳秒数的
LocalTime
,不为null
-
minus
返回此时间的副本,并减去指定的数量。返回一个
LocalTime
,基于此时间,并减去指定的数量。该数量通常是Duration
,但也可以是实现TemporalAmount
接口的任何其他类型。通过调用
TemporalAmount.subtractFrom(Temporal)
方法将计算委托给数量对象。数量实现可以以任何希望的方式实现减法,但通常会回调minus(long, TemporalUnit)
。请查阅数量实现的文档,以确定是否可以成功执行减法。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
minus
在接口Temporal
- 参数:
-
amountToSubtract
- 要减去的数量,不为null - 返回:
-
基于此时间并进行减法操作的
LocalTime
,不为null - 抛出:
-
DateTimeException
- 如果无法进行减法操作 -
ArithmeticException
- 如果发生数值溢出
-
minus
返回此时间的副本,并减去指定的数量。返回一个
LocalTime
,基于此时间,并以单位为减数。如果无法减去数量,因为不支持该单位或其他原因,则会抛出异常。此方法等同于使用
plus(long, TemporalUnit)
并取负数的方式。请参阅该方法,了解加法(因此减法)的工作原理的完整描述。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
minus
在接口Temporal
- 参数:
-
amountToSubtract
- 要从结果中减去的单位数量,可以为负数 -
unit
- 要减去的数量的单位,不为null - 返回:
-
基于此时间并减去指定数量的
LocalTime
,不为null - 抛出:
-
DateTimeException
- 如果无法进行减法操作 -
UnsupportedTemporalTypeException
- 如果不支持该单位 -
ArithmeticException
- 如果发生数值溢出
-
minusHours
返回此LocalTime
的副本,并减去指定数量的小时。从此时间减去指定数量的小时,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
hoursToSubtract
- 要减去的小时数,可以为负数 - 返回:
-
基于此时间并减去小时数的
LocalTime
,不为null
-
minusMinutes
返回此LocalTime
的副本,并减去指定数量的分钟。从此时间减去指定数量的分钟,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
minutesToSubtract
- 要减去的分钟数,可以为负数 - 返回:
-
基于此时间并减去分钟数的
LocalTime
,不为null
-
minusSeconds
返回此LocalTime
的副本,并减去指定数量的秒数。从此时间减去指定数量的秒数,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
secondsToSubtract
- 要减去的秒数,可以为负数 - 返回:
-
基于此时间并减去秒数的
LocalTime
,不为null
-
minusNanos
返回此LocalTime
的副本,并减去指定数量的纳秒。从此时间减去指定数量的纳秒,返回一个新时间。计算会在午夜时分进行。
此实例是不可变的,不受此方法调用的影响。
- 参数:
-
nanosToSubtract
- 要减去的纳秒数,可以为负数 - 返回:
-
基于此时间并减去纳秒数的
LocalTime
,不为null
-
query
使用指定的查询来查询此时间。使用指定的查询策略对象来查询此时间。
TemporalQuery
对象定义了用于获取结果的逻辑。阅读查询的文档,以了解此方法的结果将是什么。通过调用
TemporalQuery.queryFrom(TemporalAccessor)
方法在指定的查询上传递this
作为参数来获取此方法的结果。- 指定者:
-
query
在接口TemporalAccessor
- 类型参数:
-
R
- 结果的类型 - 参数:
-
query
- 要调用的查询,不为null - 返回:
- 查询结果,可能返回null(由查询定义)
- 抛出:
-
DateTimeException
- 如果无法查询(由查询定义) -
ArithmeticException
- 如果发生数值溢出(由查询定义)
-
adjustInto
调整指定的时间对象,使其具有与此对象相同的时间。返回一个与输入的可观察类型相同的时间对象,时间更改为与此相同。
调整等同于使用
Temporal.with(TemporalField, long)
并传递ChronoField.NANO_OF_DAY
作为字段。在大多数情况下,通过使用
Temporal.with(TemporalAdjuster)
来反转调用模式更清晰:// 这两行是等价的,但推荐第二种方法 temporal = thisLocalTime.adjustInto(temporal); temporal = temporal.with(thisLocalTime);
此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
adjustInto
在接口TemporalAdjuster
- 参数:
-
temporal
- 要调整的目标对象,不为null - 返回:
- 调整后的对象,不为null
- 抛出:
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数值溢出
-
until
计算到另一个时间的时间量,以指定的单位表示。这个方法计算两个
LocalTime
对象之间的时间量,以单个TemporalUnit
表示。起始点和结束点分别为this
和指定的时间。如果结束时间在起始时间之前,则结果为负数。传递给此方法的Temporal
会使用from(TemporalAccessor)
转换为LocalTime
。例如,可以使用startTime.until(endTime, HOURS)
来计算两个时间之间的小时数。计算结果是一个整数,表示两个时间之间完整单位的数量。例如,11:30和13:29之间的小时数只有一个小时,因为少了一分钟。
有两种等效的使用方法。第一种是调用此方法。第二种是使用
TemporalUnit.between(Temporal, Temporal)
:// 这两行是等效的 amount = start.until(end, MINUTES); amount = MINUTES.between(start, end);
应根据代码的可读性选择使用哪种方式。此方法中实现了
ChronoUnit
的计算。支持单位NANOS
、MICROS
、MILLIS
、SECONDS
、MINUTES
、HOURS
和HALF_DAYS
。其他ChronoUnit
值将抛出异常。如果单位不是
ChronoUnit
,则通过调用TemporalUnit.between(Temporal, Temporal)
并将this
作为第一个参数、转换后的输入时间作为第二个参数来获取此方法的结果。此实例是不可变的,不受此方法调用的影响。
- 指定者:
-
until
在接口Temporal
- 参数:
-
endExclusive
- 结束时间(不包括),将被转换为LocalTime
,不能为空 -
unit
- 用于测量时间量的单位,不能为空 - 返回:
- 此时间和结束时间之间的时间量
- 抛出:
-
DateTimeException
- 如果无法计算时间量,或者无法将结束时间转换为LocalTime
-
UnsupportedTemporalTypeException
- 如果不支持该单位 -
ArithmeticException
- 如果发生数值溢出
-
format
使用指定的格式化程序格式化此时间。将此时间传递给格式化程序以生成字符串。
- 参数:
-
formatter
- 要使用的格式化程序,不能为空 - 返回:
- 格式化后的时间字符串,不能为空
- 抛出:
-
DateTimeException
- 打印过程中发生错误
-
atDate
将此时间与日期组合以创建LocalDateTime
。返回从此时间和指定日期形成的
LocalDateTime
。日期和时间的所有可能组合都是有效的。- 参数:
-
date
- 要组合的日期,不能为空 - 返回:
- 从此时间和指定日期形成的本地日期时间,不能为空
-
atOffset
将此时间与偏移量组合以创建OffsetTime
。返回从此时间和指定偏移量形成的
OffsetTime
。时间和偏移量的所有可能组合都是有效的。- 参数:
-
offset
- 要组合的偏移量,不能为空 - 返回:
- 从此时间和指定偏移量形成的偏移时间,不能为空
-
toSecondOfDay
public int toSecondOfDay()提取时间作为一天中的秒数,从0
到24 * 60 * 60 - 1
。- 返回:
- 等同于此时间的一天中的秒数
-
toNanoOfDay
public long toNanoOfDay()提取时间作为一天中的纳秒数,从0
到24 * 60 * 60 * 1,000,000,000 - 1
。- 返回:
- 等同于此时间的一天中的纳秒数
-
toEpochSecond
将此LocalTime
转换为自1970-01-01T00:00:00Z时代以来的秒数。将此本地时间与指定日期和偏移量组合以计算时代秒值,即从1970-01-01T00:00:00Z开始经过的秒数。时代时间线上的瞬间在时代之后为正,在时代之前为负。
- 参数:
-
date
- 本地日期,不能为空 -
offset
- 时区偏移量,不能为空 - 返回:
- 自1970-01-01T00:00:00Z时代以来的秒数,可能为负数
- 自:
- 9
-
compareTo
将此时间与另一个时间进行比较。比较基于一天内本地时间在时间线上的位置。它是“与equals一致”的,如
Comparable
所定义。- 指定者:
-
compareTo
在接口Comparable<LocalTime>
- 参数:
-
other
- 要比较的另一个时间,不能为空 - 返回:
-
比较器值,如果此时间在
other
之前,则小于零,如果它们相等,则为零,如果此时间在other
之后,则大于零 - 参见:
-
isAfter
检查此时间是否在指定时间之后。比较基于时间在一天内的时间线位置。
- 参数:
-
other
- 要比较的另一个时间,不能为空 - 返回:
- 如果此时间在指定时间之后,则为true
-
isBefore
检查此时间是否在指定时间之前。比较基于时间在一天内的时间线位置。
- 参数:
-
other
- 要比较的另一个时间,不能为空 - 返回:
- 如果此时间在指定时间之前,则为true
-
equals
检查此时间是否等于另一个时间。比较基于时间在一天内的时间线位置。
只有
LocalTime
类型的对象会进行比较,其他类型会返回false。要比较两个TemporalAccessor
实例的日期,使用ChronoField.NANO_OF_DAY
作为比较器。 -
hashCode
public int hashCode()此时间的哈希码。 -
toString
将此时间输出为String
,例如10:15
。输出将是以下ISO-8601格式之一:
HH:mm
HH:mm:ss
HH:mm:ss.SSS
HH:mm:ss.SSSSSS
HH:mm:ss.SSSSSSSSS
-