D
-这个日期时间日期的具体类型
public interface ChronoZonedDateTime<D extends ChronoLocalDate> extends Temporal, Comparable<ChronoZonedDateTime<?>>
大多数应用程序都应声明方法签名,字段和变量ZonedDateTime
,不是这个界面。
一个ChronoZonedDateTime
是抽象的偏移时间的Chronology chronology
,或日历系统,是可插拔。日期时间字段中所表达的TemporalField
术语定义,其中最常见的实现定义在ChronoField
。年表定义日历系统的运作和标准领域的意义。
ZonedDateTime
而不是使用这个接口,即使在应用程序需要处理多个日历系统的情况下。这个理由是,详细探讨了在
ChronoLocalDate
。
确保在ChronoLocalDate
的讨论已经阅读并理解在使用此接口。
Modifier and Type | Method and Description |
---|---|
default int |
compareTo(ChronoZonedDateTime<?> other)
将此日期时间与另一个日期时间进行比较,包括年代。
|
boolean |
equals(Object obj)
检查此日期时间是否等于另一个日期时间。
|
default String |
format(DateTimeFormatter formatter)
这个日期时间格式使用指定的格式化程序。
|
static ChronoZonedDateTime<?> |
from(TemporalAccessor temporal)
获得
ChronoZonedDateTime 实例从一个时空对象。
|
default int |
get(TemporalField field)
作为一个
int 获取指定的字段的值。
|
default Chronology |
getChronology()
获取此日期时间的日期。
|
default long |
getLong(TemporalField field)
得到一
long 指定的字段的值。
|
ZoneOffset |
getOffset()
能带偏移,如“+”01:00。
|
ZoneId |
getZone()
获取区域标识,如“欧洲/巴黎”。
|
int |
hashCode()
用于此日期时间的哈希代码。
|
default boolean |
isAfter(ChronoZonedDateTime<?> other)
检查此日期时间的即时是否在指定日期时间之后。
|
default boolean |
isBefore(ChronoZonedDateTime<?> other)
检查此日期时间的即时是否在指定日期时间之前。
|
default boolean |
isEqual(ChronoZonedDateTime<?> other)
检查此日期时间的即时是否等于指定日期时间的时间。
|
boolean |
isSupported(TemporalField field)
检查指定字段是否被支持。
|
default boolean |
isSupported(TemporalUnit unit)
检查指定的单位是否被支持。
|
default ChronoZonedDateTime<D> |
minus(long amountToSubtract, TemporalUnit unit)
返回与指定期间减去的相同类型的对象。
|
default ChronoZonedDateTime<D> |
minus(TemporalAmount amount)
返回一个与此对象相同的类型的对象,该对象的金额减去。
|
ChronoZonedDateTime<D> |
plus(long amountToAdd, TemporalUnit unit)
返回与此对象相同的类型的对象,添加指定的周期。
|
default ChronoZonedDateTime<D> |
plus(TemporalAmount amount)
返回与此对象添加的相同类型的对象。
|
default <R> R |
query(TemporalQuery<R> query)
使用指定的查询查询此日期时间。
|
default ValueRange |
range(TemporalField field)
获取指定字段的有效值的范围。
|
static Comparator<ChronoZonedDateTime<?>> |
timeLineOrder()
获取一个比较器,比较
ChronoZonedDateTime 时间线的顺序忽略年表。
|
default long |
toEpochSecond()
将此日期时间的秒数从1970-01-01t00:00:00z时代。
|
default Instant |
toInstant()
将这一
Instant 日期时间。
|
default D |
toLocalDate()
获取此日期时间的本地日期部分。
|
ChronoLocalDateTime<D> |
toLocalDateTime()
获取此日期时间的本地日期时间部分。
|
default LocalTime |
toLocalTime()
获取此日期时间的本地时间部分。
|
String |
toString()
输出该日期时间为
String 。
|
default ChronoZonedDateTime<D> |
with(TemporalAdjuster adjuster)
返回与此对象调整的相同类型的调整对象。
|
ChronoZonedDateTime<D> |
with(TemporalField field, long newValue)
返回与指定字段更改的相同类型的对象。
|
ChronoZonedDateTime<D> |
withEarlierOffsetAtOverlap()
返回此日期时间更改区域的副本,以在本地时间线重叠时对两个有效偏移量的较早的偏移量偏移。
|
ChronoZonedDateTime<D> |
withLaterOffsetAtOverlap()
返回此日期时间更改区域的副本,以在本地时间线重叠中的两个有效偏移量的后面偏移。
|
ChronoZonedDateTime<D> |
withZoneSameInstant(ZoneId zone)
返回此日期时间的副本,以不同的时区,保留即时。
|
ChronoZonedDateTime<D> |
withZoneSameLocal(ZoneId zone)
返回一份本ZonedDateTime与一个不同的时区,保留当地的日期时间如果可能的话。
|
static Comparator<ChronoZonedDateTime<?>> timeLineOrder()
ChronoZonedDateTime
时间线的顺序忽略年表。
该比较器与compareTo(java.time.chrono.ChronoZonedDateTime<?>)
在比较,只是比较底层的瞬间而不是年表。这允许在不同的日历系统中的日期进行比较的基础上的日期时间的位置上的即时时间线。潜在的比较是相当于比较的第二和第二纳米。
static ChronoZonedDateTime<?> from(TemporalAccessor temporal)
ChronoZonedDateTime
实例从一个时空对象。
这将创建一个基于指定时间的分区日期时间。一个TemporalAccessor
表示日期和时间信息,任意设置,本厂将以ChronoZonedDateTime
实例。
转换提取物,并结合时间对象的时间对象的时间和日期,时间和区域。行为相当于使用Chronology.zonedDateTime(TemporalAccessor)
与提取的年表。实现允许执行优化,如访问这些字段,这些字段相当于相关对象。
这种方法相匹配的功能接口TemporalQuery
可以通过方法引用查询的签名,ChronoZonedDateTime::from
。
temporal
-转换时间的对象,不为空
DateTimeException
如果无法转换为
ChronoZonedDateTime
Chronology.zonedDateTime(TemporalAccessor)
default ValueRange range(TemporalField field)
TemporalAccessor
所有字段可以表示为一个long
整数。此方法返回一个对象,该对象描述该值的有效范围。这个时间对象的值是用来提高返回范围的准确性。如果日期时间不能返回范围,因为字段不支持或其他原因,将抛出一个异常。
请注意,结果只描述了最小值和最大值的有效值,重要的是不要对它们进行太多的阅读。例如,可能在字段无效的范围内的值。
range
接口
TemporalAccessor
field
-现场查询范围,不为空
default int get(TemporalField field)
TemporalAccessor
int
获取指定的字段的值。
此查询指定字段的值的日期时间。返回的值将始终在字段的有效值范围内。如果日期时间不能返回值,因为字段不支持或其他原因,将引发异常。
get
接口
TemporalAccessor
field
-领域有,不空
default long getLong(TemporalField field)
TemporalAccessor
long
指定的字段的值。
此查询指定字段的值的日期时间。返回的值可能是字段的有效值范围以外的。如果日期时间不能返回值,因为字段不支持或其他原因,将引发异常。
getLong
接口
TemporalAccessor
field
-领域有,不空
default D toLocalDate()
这将返回一个本地日期与同一年、月和日作为这个日期时间。
default LocalTime toLocalTime()
这将返回一个本地时间与相同的小时,分钟,秒和纳秒作为这个日期时间。
ChronoLocalDateTime<D> toLocalDateTime()
这将返回一个本地日期与同一年、月和日作为这个日期时间。
default Chronology getChronology()
的Chronology
代表使用日历系统。在ChronoField
时代和其他领域的时间定义。
ZoneOffset getOffset()
这是从UTC /格林尼治本地时间偏移。
ZoneId getZone()
返回用于确定时区规则的存储的时区标识。
ChronoZonedDateTime<D> withEarlierOffsetAtOverlap()
这种方法只有什么影响时,当地的时间线重叠,如在一个秋天的日光节约割接。在这种情况下,本地日期时间有两个有效的偏移量。调用此方法将返回一个分区的时间与两个选定的较早的时间。
如果这个方法被调用时,它是不重叠的,this
返回。
此实例是不可变的,不受此方法调用的影响。
ZoneChronoDateTime
为主,不为空
DateTimeException
-如果没有规则可以发现该区
DateTimeException
-如果没有规则这个日期时间是有效的
ChronoZonedDateTime<D> withLaterOffsetAtOverlap()
这种方法只有什么影响时,当地的时间线重叠,如在一个秋天的日光节约割接。在这种情况下,本地日期时间有两个有效的偏移量。调用此方法将返回一个分区的时间与后面的两个选定的。
如果这个方法被调用时,它是不重叠的,this
返回。
此实例是不可变的,不受此方法调用的影响。
ChronoZonedDateTime
为主,不为空
DateTimeException
-如果没有规则可以发现该区
DateTimeException
-如果没有规则这个日期时间是有效的
ChronoZonedDateTime<D> withZoneSameLocal(ZoneId zone)
此方法更改时区,并保留本地日期时间。如果新区域无效,本地日期时间仅更改。
改变区和调整当地的日期时间,使用withZoneSameInstant(ZoneId)
。
此实例是不可变的,不受此方法调用的影响。
zone
-时区改变,不为空
ChronoZonedDateTime
日期时间与请求的区域,不为空
ChronoZonedDateTime<D> withZoneSameInstant(ZoneId zone)
这种方法改变了时区并保留了即时。这通常会导致本地日期时间的更改。
此方法是基于保持相同的瞬间,从而在本地时间线的差距和重叠,对结果没有影响。
在维持当地时间变化的偏移,使用withZoneSameLocal(ZoneId)
。
zone
-时区改变,不为空
ChronoZonedDateTime
日期时间与请求的区域,不为空
DateTimeException
-如果结果超过支持的日期范围
boolean isSupported(TemporalField field)
此检查如果指定的字段可以在这个日期时间查询。如果为false,则调用range
,get
和with(TemporalField, long)
方法将抛出一个异常。
支持的字段集由年表的定义,通常包括所有ChronoField
领域。
如果该字段是不是ChronoField
,然后通过调用作为参数传递this
TemporalField.isSupportedBy(TemporalAccessor)
得到此方法的结果。是否支持字段由字段确定。
isSupported
接口
TemporalAccessor
field
-现场检查null返回false
default boolean isSupported(TemporalUnit unit)
此检查如果指定的单位可以添加到或从这个日期时间减去。如果为false,则调用plus(long, TemporalUnit)
和minus
方法将抛出一个异常。
支持单位集由年表的定义和一般包括除FOREVER
所有ChronoUnit
单位。
如果单位不ChronoUnit
,然后通过调用作为参数传递this
TemporalUnit.isSupportedBy(Temporal)
得到此方法的结果。是否支持单位是由单位确定的。
isSupported
接口
Temporal
unit
-检查单元,空返回false
default ChronoZonedDateTime<D> with(TemporalAdjuster adjuster)
根据指定的调节器的规则来调整这个日期时间。一个简单的调节器可以简单地设置一个字段,例如年字段。一个更复杂的调节器可能会把日期定在月的最后一天。选择常见的调整提供了TemporalAdjuster
。这些包括找到“一个月的最后一天”和“下星期三”。该调节器是负责处理特殊情况下,如不同长度的月和跳跃年。
一些示例代码,说明如何以及为什么使用这种方法:
日期=日期(月,七月);//最关键的类实现temporaladjuster日期为日期,(lastdayofmonth());//静态导入调节器日期为日期,(下(星期三));//静态导入调节器和DayOfWeek
with
接口
Temporal
adjuster
-调节器使用,不为空
DateTimeException
如果无法适应
ArithmeticException
如果数值溢出时
ChronoZonedDateTime<D> with(TemporalField field, long newValue)
这将返回一个新的对象,在此基础上,以指定字段的值更改。例如,在一个LocalDate
,这可以用来设置年、月、日月。返回的对象将有相同的可观察的类型作为此对象。
在某些情况下,改变一个字段没有完全定义。例如,如果目标对象是代表1月31日的日期,则更改月至二月将不清楚。在这样的情况下,该字段负责解决结果。通常情况下,它会选择以前的有效日期,这将是二月的最后一个有效的一天,在这个例子中。
with
接口
Temporal
field
-现场设置的结果,不为空
newValue
-场的结果中的新价值
DateTimeException
-如果该字段不能设置
ArithmeticException
如果数值溢出时
default ChronoZonedDateTime<D> plus(TemporalAmount amount)
这调整这个时间,添加根据指定金额的规则。量是一个典型的Period
但可能是任何其他类型的实施TemporalAmount
接口,如Duration
。
一些示例代码,说明如何以及为什么使用这种方法:
日期=日期(期间);/ /添加一个周期实例日期。+(持续时间);/ /添加一个持续时间实例日期=日期。加(工作日(6));//实例用户编写的工作日的方法
注意,调用plus
随后minus
不保证返回相同的日期时间。
plus
接口
Temporal
amount
-添加量,不为空
DateTimeException
如果还不能
ArithmeticException
如果数值溢出时
ChronoZonedDateTime<D> plus(long amountToAdd, TemporalUnit unit)
此方法返回一个新的对象,在此基础上添加指定的周期。例如,在一个LocalDate
,这可以用来添加一个数年、月或日。返回的对象将有相同的可观察的类型作为此对象。
在某些情况下,改变一个字段没有完全定义。例如,如果目标对象是代表1月31日的日期,则添加一个月将不清楚。在这样的情况下,该字段负责解决结果。通常情况下,它会选择以前的有效日期,这将是二月的最后一个有效的一天,在这个例子中。
plus
接口
Temporal
amountToAdd
-添加指定的单位的数量,可能是负面的
unit
-期添加单元,不为空
DateTimeException
如果单位不能添加
ArithmeticException
如果数值溢出时
default ChronoZonedDateTime<D> minus(TemporalAmount amount)
这调整这个时间,减去根据指定金额的规则。量是一个典型的Period
但可能是任何其他类型的实施TemporalAmount
接口,如Duration
。
一些示例代码,说明如何以及为什么使用这种方法:
日期=日期减去(期间);/ /减去一个周期实例日期。减去(持续时间);/ /减去持续时间实例日期=日期减去(工作日(6));//实例用户编写的工作日的方法
注意,调用plus
随后minus
不保证返回相同的日期时间。
minus
接口
Temporal
amount
-减去的量,不为空
DateTimeException
如果减法不能做
ArithmeticException
如果数值溢出时
default ChronoZonedDateTime<D> minus(long amountToSubtract, TemporalUnit unit)
此方法返回一个新的对象,在此基础上减去指定的周期。例如,在一个LocalDate
,这可以用来减去一个数年、月或日。返回的对象将有相同的可观察的类型作为此对象。
在某些情况下,改变一个字段没有完全定义。例如,如果目标对象是代表3月31日的日期,那么减去一个月就不清楚了。在这样的情况下,该字段负责解决结果。通常情况下,它会选择以前的有效日期,这将是二月的最后一个有效的一天,在这个例子中。
minus
接口
Temporal
amountToSubtract
-减去指定的单位的数量,可能是负面的
unit
-期减去单位,不为空
DateTimeException
如果单位不能扣除
ArithmeticException
如果数值溢出时
default <R> R query(TemporalQuery<R> query)
此查询使用指定的查询策略对象使用此日期时间。的TemporalQuery
对象定义了用来获得结果的逻辑。阅读查询的文档,了解该方法的结果将是什么。
这种方法的结果是通过调用指定的查询通过this
作为论据的TemporalQuery.queryFrom(TemporalAccessor)
方法得到的。
query
接口
TemporalAccessor
R
-结果的类型
query
-调用查询,不空
DateTimeException
如果无法查询(查询所定义)
ArithmeticException
如果数值溢出时(由查询定义)
default String format(DateTimeFormatter formatter)
这个日期将被传递到格式化程序产生一个字符串。
默认实现必须表现如下:
返回格式化格式(这);
formatter
-格式化程序使用,不为空
DateTimeException
如果打印时发生错误
default Instant toInstant()
Instant
日期时间。
这将返回代表时间轴上的同一点为这一Instant
日期时间。计算相结合的local date-time和offset。
Instant
,不空
default long toEpochSecond()
本文采用local date-time和offset计算时代第二值,这是经过的秒数后1970-01-01t00:00:00z。时代在时间线的时刻是积极的,早些时候是消极的。
时代。default int compareTo(ChronoZonedDateTime<?> other)
比较首先是基于即时的,然后在当地的日期时间,然后在区域标识,然后在年代。这是“等于”一致,所定义的Comparable
。
如果将所有的日期对象进行比较的时间都是在同一个时间段,那么不需要额外的时间段阶段。
此默认实现执行以上定义的比较。
compareTo
接口
Comparable<ChronoZonedDateTime<?>>
other
的其他时间相比,不空
default boolean isBefore(ChronoZonedDateTime<?> other)
这种方法不同于在compareTo(java.time.chrono.ChronoZonedDateTime<?>)
在比较,只是比较的日期时间的瞬间。这相当于使用dateTime1.toInstant().isBefore(dateTime2.toInstant());
。
这个默认实现执行基于第二个第二个和第二个的第二个和第二个。
other
的其他时间相比,不空
default boolean isAfter(ChronoZonedDateTime<?> other)
这种方法不同于在compareTo(java.time.chrono.ChronoZonedDateTime<?>)
在比较,只是比较的日期时间的瞬间。这相当于使用dateTime1.toInstant().isAfter(dateTime2.toInstant());
。
这个默认实现执行基于第二个第二个和第二个的第二个和第二个。
other
的其他时间相比,不空
default boolean isEqual(ChronoZonedDateTime<?> other)
这种方法不同于在它只对日期时间的即时compareTo(java.time.chrono.ChronoZonedDateTime<?>)
和equals(java.lang.Object)
比较。这相当于使用dateTime1.toInstant().equals(dateTime2.toInstant());
。
这个默认实现执行基于第二个第二个和第二个的第二个和第二个。
other
的其他时间相比,不空
boolean equals(Object obj)
该比较是基于偏移日期时间和区域。在时间线的一瞬间相比,使用compareTo(java.time.chrono.ChronoZonedDateTime<?>)
。ChronoZonedDateTime
型只有对象相比,其他类型返回false。
equals
方法重写,继承类
Object
obj
-检查对象,空返回false
Object.hashCode()
,
HashMap
int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
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.