public final class TemporalQueries extends Object
TemporalQuery共同实现的。
这个类提供了TemporalQuery常见的实现。这些被定义为必须是常数,与lambda定义不保证。通过将他们曾经在这里,他们成为“正常”的java常量。
查询是从时间对象中提取信息的一个关键工具。他们的存在使得查询过程,允许不同的方法,根据策略设计模式。例子可能是一个查询,检查日期是否是在2月29日之前的一天,或计算的天数到你的下一个生日。
的TemporalField界面提供查询时态对象的另一种机制。该接口是有限的long返回。相比之下,查询可以返回任何类型。
有使用TemporalQuery两等效方法。首先是直接调用这个接口的方法。二是用TemporalAccessor.query(TemporalQuery):
这两条线是等价的,但第二种方法是建议时间=这个问题。queryfrom(时间);时间=时间查询(这个问题);建议使用第二种方法,
query(TemporalQuery),因为它是一个更清晰的读码。
最常见的实现方法的引用,如LocalDate::from和ZoneId::from。额外的普通查询提供回报:
| Modifier and Type | Method and Description |
|---|---|
static TemporalQuery<Chronology> |
chronology()
为
Chronology查询。
|
static TemporalQuery<LocalDate> |
localDate()
对于
LocalDate返回null查询,如果没有找到。
|
static TemporalQuery<LocalTime> |
localTime()
对于
LocalTime返回null查询,如果没有找到。
|
static TemporalQuery<ZoneOffset> |
offset()
对于
ZoneOffset返回null查询,如果没有找到。
|
static TemporalQuery<TemporalUnit> |
precision()
最小支持单位的查询。
|
static TemporalQuery<ZoneId> |
zone()
为
ZoneId宽大的查询,落回
ZoneOffset。
|
static TemporalQuery<ZoneId> |
zoneId()
为
ZoneId严格查询。
|
public static TemporalQuery<ZoneId> zoneId()
ZoneId严格查询。
这一区域的TemporalAccessor查询。带只返回日期时间概念上包含一个ZoneId。它不会如果日期时间概念有一个ZoneOffset返回。因此,ZonedDateTime将返回getZone()的结果,而是一个OffsetDateTime将返回null。
在大多数情况下,应用程序应该使用zone()这个查询太严格。
从JDK的类实现TemporalAccessor结果如下:
LocalDate返回null
LocalTime返回null
LocalDateTime返回null
ZonedDateTime返回相关的zone
OffsetTime返回null
OffsetDateTime返回null
ChronoLocalDate返回nullz-14ddac66- fe22-4260-92c7-bd385d344258 ChronoLocalDateTime返回null
ChronoZonedDateTime返回相关的zone
Era返回null
DayOfWeek返回null
Month返回null
Year返回null
YearMonth返回null
MonthDay返回null
ZoneOffset返回null
Instant返回null
public static TemporalQuery<Chronology> chronology()
Chronology
这个查询的TemporalAccessor年表。如果目标TemporalAccessor代表一个日期,或约会的一部分,那么它应该回归年表,日期的表达。由于这一定义,对象只代表时间,如LocalTime,将返回null。
从JDK的类实现TemporalAccessor结果如下:
LocalDate返回IsoChronology.INSTANCE
LocalTime返回null(并不代表一个日期)
LocalDateTime返回IsoChronology.INSTANCE
ZonedDateTime返回IsoChronology.INSTANCE
OffsetTime返回null(并不代表一个日期)
OffsetDateTime返回IsoChronology.INSTANCE
ChronoLocalDate返回相关的chronology
ChronoLocalDateTime返回相关的chronology
ChronoZonedDateTime返回相关的chronology
Era返回相关的chronology
DayOfWeek返回null(共享
Month返回z-7711b7fb-dcaf-4f77-af年表)92-5af97a0a7fe2
Year返回IsoChronology.INSTANCE
YearMonth返回IsoChronology.INSTANCE
MonthDay返回null IsoChronology.INSTANCE
ZoneOffset返回null(并不代表一个日期)
Instant返回null(并不代表一个日期)
方法Chronology.from(TemporalAccessor)可以通过方法引用TemporalQuery,Chronology::from。该方法相当于此查询,除非它抛出一个异常,如果无法得到的。
public static TemporalQuery<TemporalUnit> precision()
这一TemporalAccessor查询的时间精度。如果目标TemporalAccessor代表一致或完整的日期时间,日期或时间,然后必须返回最小精度实际上支持。请注意,如NANO_OF_DAY和NANO_OF_SECOND字段定义的回报总是忽略的精度,因此这是找到实际的最小支撑单元的唯一途径。例如,在GregorianCalendar实施TemporalAccessor将返回一个精确的MILLIS。
从JDK的类实现TemporalAccessor结果如下:
LocalDate返回DAYS
LocalTime返回NANOS
LocalDateTime返回NANOS
ZonedDateTime返回NANOS
OffsetTime返回NANOS
OffsetDateTime返回NANOS
ChronoLocalDate返回DAYS
ChronoLocalDateTime返回NANOS
ChronoZonedDateTime返回NANOS
Era返回ERAS
DayOfWeek返回DAYS
Z- 8cf2c36c-3aeb-438b-b996-65f7db8348bc返回MONTHS
Year返回YEARS
YearMonth返回MONTHS
MonthDay返回null(并不代表一个完整的日期或时间)
ZoneOffset返回null(并不代表一个日期或时间)
Instant返回NANOS
public static TemporalQuery<ZoneId> zone()
ZoneId宽大的查询,落回
ZoneOffset
这一区域的TemporalAccessor查询。首先试图获得区,使用zoneId()。如果不是发现它试图获得offset()。因此,ZonedDateTime将返回getZone()的结果,而OffsetDateTime将返回getOffset()结果。
在大多数情况下,应用程序应该使用这个查询而不是#zoneId()。
方法ZoneId.from(TemporalAccessor)可以通过方法引用,ZoneId::from一TemporalQuery。这种方法相当于该查询,除了它抛出一个异常如果不能得到一个区。
public static TemporalQuery<ZoneOffset> offset()
ZoneOffset返回null查询,如果没有找到。
这将返回一个TemporalQuery可用于查询的偏移时间的对象。如果时间对象不能提供偏移量,则查询将返回空值。
查询执行检查OFFSET_SECONDS场并使用它来创建一个ZoneOffset。
方法ZoneOffset.from(TemporalAccessor)可以通过方法引用TemporalQuery,ZoneOffset::from。此查询和ZoneOffset::from如果时态对象包含一个偏移量返回相同的结果。如果时间对象不包含偏移量,则方法引用将抛出一个异常,而此查询将返回空值。
public static TemporalQuery<LocalDate> localDate()
LocalDate返回null查询,如果没有找到。
这将返回一个TemporalQuery可以用来查询一个时态对象为当地的日期。如果时间对象不能提供本地日期,则查询将返回空值。
查询执行检查EPOCH_DAY场并使用它来创建一个LocalDate。
方法ZoneOffset.from(TemporalAccessor)可以通过方法引用TemporalQuery,LocalDate::from。此查询和LocalDate::from如果时态对象包含一个日期返回相同的结果。如果时间对象不包含日期,则方法引用将抛出一个异常,而此查询将返回空值。
public static TemporalQuery<LocalTime> localTime()
LocalTime返回null查询,如果没有找到。
这将返回一个TemporalQuery可以用来查询一个时态对象为当地时间。如果时间对象不能提供本地时间,则查询将返回为空。
查询执行检查NANO_OF_DAY场并使用它来创建一个LocalTime。
方法ZoneOffset.from(TemporalAccessor)可以通过方法引用TemporalQuery,LocalTime::from。此查询和LocalTime::from如果时态对象包含一个时间返回相同的结果。如果时间对象不包含一个时间,那么方法引用将抛出一个异常,而这个查询将返回空值。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.