public final class ZoneOffset extends ZoneId implements TemporalAccessor, TemporalAdjuster, Comparable<ZoneOffset>, Serializable
+02:00
。
一个时区偏移时间时区不同于格林尼治/ UTC。这通常是一个固定的小时数和分钟数。
世界不同地区有不同的时区偏移。如何补偿的规则有所不同的地方,一年的时间,在ZoneId
类捕获。
例如,巴黎在夏天在格林尼治/ UTC在冬季和两小时提前一个小时。巴黎的ZoneId
实例将参考两ZoneOffset
实例-一个冬天的+01:00
实例,和夏+02:00
实例。
2008、时区偏移量在全世界扩展从12:00至14:00 +。为了防止与范围扩展的任何问题,但仍然提供验证、补偿的范围限于18:00至18:00包容。
此类被设计为使用与国际标准组织日历系统。小时,分,秒的领域,使假设是有效的标准的国际标准化组织的定义,这些领域。这个类可以与其他日历系统一起使用,提供与时间域的定义相匹配的日历系统的定义。
ZoneOffset
实例必须使用equals(java.lang.Object)
相比。实现可能会选择缓存某些常见的偏移量,但是应用程序不能依赖这样的缓存。
这是一个value-based类;利用身份敏感的操作(包括引用相等(==
),身份的哈希代码,或同步)的实例ZoneOffset
可能有不可预知的结果应该是可以避免的。的equals
法进行比较。
Modifier and Type | Field and Description |
---|---|
static ZoneOffset |
MAX
最大支持偏移量的常数。
|
static ZoneOffset |
MIN
最大支持偏移量的常数。
|
static ZoneOffset |
UTC
时区偏移时,用“Z”身份。
|
Modifier and Type | Method and Description |
---|---|
Temporal |
adjustInto(Temporal temporal)
调整指定的时间对象,以具有相同的偏移量为这个对象。
|
int |
compareTo(ZoneOffset other)
将此偏移量与另一个递减顺序的偏移量进行比较。
|
boolean |
equals(Object obj)
检查此偏移是否等于另一个偏移量。
|
static ZoneOffset |
from(TemporalAccessor temporal)
获得
ZoneOffset 实例从一个时空对象。
|
int |
get(TemporalField field)
获取指定字段的值,从这一
int 偏移。
|
String |
getId()
获取归一化区域偏移ID.
|
long |
getLong(TemporalField field)
获取指定字段的值,从这一
long 偏移。
|
ZoneRules |
getRules()
获取关联的时区规则。
|
int |
getTotalSeconds()
获取在秒中的总区域偏移量。
|
int |
hashCode()
此偏移量的哈希代码。
|
boolean |
isSupported(TemporalField field)
检查指定字段是否被支持。
|
static ZoneOffset |
of(String offsetId)
得到一个实例
ZoneOffset 使用ID。
|
static ZoneOffset |
ofHours(int hours)
得到一个实例
ZoneOffset 使用偏移时间。
|
static ZoneOffset |
ofHoursMinutes(int hours, int minutes)
得到一个实例
ZoneOffset 以小时和分钟偏移。
|
static ZoneOffset |
ofHoursMinutesSeconds(int hours, int minutes, int seconds)
获得使用小时偏移
ZoneOffset 实例,分钟和秒。
|
static ZoneOffset |
ofTotalSeconds(int totalSeconds)
获得
ZoneOffset 指定总秒偏移实例
|
<R> R |
query(TemporalQuery<R> query)
使用指定的查询查询此偏移量。
|
ValueRange |
range(TemporalField field)
获取指定字段的有效值的范围。
|
String |
toString()
这是一个
String 输出偏移,利用归一化的ID。
|
getAvailableZoneIds, getDisplayName, normalized, of, ofOffset, systemDefault
public static final ZoneOffset UTC
public static final ZoneOffset MIN
public static final ZoneOffset MAX
public static ZoneOffset of(String offsetId)
ZoneOffset
使用ID。
此方法分析一个ZoneOffset
字符串ID返回的实例。解析接收所有格式所产生的getId()
,加上一些额外的格式:
Z
- UTC+h
+hh
+hh:mm
-hh:mm
+hhmm
-hhmm
+hh:mm:ss
-hh:mm:ss
+hhmmss
-hhmmss
返回的抵消ID将被标准化为一个描述的getId()
格式。
所支持的最大范围是从18:00至18:00包容。
offsetId
-偏移的ID,不为空
DateTimeException
如果偏移ID无效
public static ZoneOffset ofHours(int hours)
ZoneOffset
使用偏移时间。
hours
-时区时差,从18到18
DateTimeException
如果偏移不在要求的范围内
public static ZoneOffset ofHoursMinutes(int hours, int minutes)
ZoneOffset
以小时和分钟偏移。
小时和分钟组件的符号必须匹配。因此,如果时间是负的,则记录的时间必须为负或零。如果时间为零,则分钟可能是正的,负的或零。
hours
-时区时差,从18到18
minutes
的时区偏移量在几分钟内,从0到59小时±,标配
DateTimeException
如果偏移不在要求的范围内
public static ZoneOffset ofHoursMinutesSeconds(int hours, int minutes, int seconds)
ZoneOffset
实例,分钟和秒。
小时,分,秒组件的符号必须匹配。因此,如果时间是负的,分和秒必须是负或零。
hours
-时区时差,从18到18
minutes
的时区偏移量在几分钟内,从0到±标配59,小时和秒
seconds
的时区偏移量在几秒钟内,从0到±标配59,小时和分钟
DateTimeException
如果偏移不在要求的范围内
public static ZoneOffset from(TemporalAccessor temporal)
ZoneOffset
实例从一个时空对象。
这得到一个偏移的基础上指定的时间。一个TemporalAccessor
表示日期和时间信息,任意设置,本厂将以ZoneOffset
实例。
一个TemporalAccessor
代表某种形式的日期和时间信息。本厂将任意时空对象的一个实例ZoneOffset
。
转换使用TemporalQueries.offset()
查询,这依赖于提取OFFSET_SECONDS
场。
这种方法相匹配的功能接口TemporalQuery
可以通过方法引用查询中的签名,ZoneOffset::from
。
temporal
-转换时间的对象,不为空
DateTimeException
如果无法转换到一个
ZoneOffset
public static ZoneOffset ofTotalSeconds(int totalSeconds)
ZoneOffset
指定秒
偏移量必须在范围-18:00
到+18:00
,对应64800到64800。
totalSeconds
-总的时区偏移量在几秒钟内,从64800到64800
DateTimeException
如果偏移不在要求的范围内
public int getTotalSeconds()
这是访问偏移量的主要方式。它返回的时间,分和秒字段作为一个单一的偏移量,可以添加到一个时间。
public String getId()
ID是标准格式化字符串的偏移ISO-8601轻微变化。有三种格式:
Z
- UTC(ISO-8601)+hh:mm
或-hh:mm
如果秒零(ISO-8601)+hh:mm:ss
或-hh:mm:ss
如果秒数非零(不是ISO-8601)public ZoneRules getRules()
当查询时,规则将总是返回此偏移量。实现类是不可变的,线程安全和可串行化。
public boolean isSupported(TemporalField field)
此检查如果此偏移量可以查询指定的字段。如果为false,则调用range
和get
方法将抛出一个异常。
如果该字段是ChronoField
然后查询执行。的OFFSET_SECONDS
场返回true。所有其他ChronoField
实例将返回false。
如果该字段是不是ChronoField
,然后通过调用作为参数传递this
TemporalField.isSupportedBy(TemporalAccessor)
得到此方法的结果。是否支持字段由字段确定。
isSupported
接口
TemporalAccessor
field
-现场检查null返回false
public ValueRange range(TemporalField field)
该范围对象表示字段的最小值和最大有效值。此偏移是用来提高返回范围的准确性。如果它是不可能返回的范围,因为字段不支持或其他一些原因,抛出一个异常。
如果该字段是ChronoField
然后查询执行。的supported fields
将返回适当的范围的情况下。所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是ChronoField
,然后通过调用作为参数传递this
TemporalField.rangeRefinedBy(TemporalAccessor)
得到此方法的结果。是否可以得到范围是由字段确定的。
range
接口
TemporalAccessor
field
-现场查询范围,不为空
DateTimeException
如果不能得到的领域范围
UnsupportedTemporalTypeException
如果字段不支持
public int get(TemporalField field)
int
偏移。
此查询此偏移量为指定字段的值。返回的值将始终在字段的有效值范围内。如果不可能返回值,因为字段不支持或其他原因,则抛出异常。
如果该字段是ChronoField
然后查询执行。的OFFSET_SECONDS
字段返回的偏移值。所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是ChronoField
,然后通过调用作为参数传递this
TemporalField.getFrom(TemporalAccessor)
得到此方法的结果。是否可以得到值,以及值表示的值,由字段确定。
get
接口
TemporalAccessor
field
-领域有,不空
DateTimeException
如果字段的值是不能获得或值不在字段的有效值范围内
UnsupportedTemporalTypeException
-如果字段不支持或值的范围超过一个
int
ArithmeticException
如果数值溢出时
public long getLong(TemporalField field)
long
偏移。
此查询此偏移量为指定字段的值。如果不可能返回值,因为字段不支持或其他原因,则抛出异常。
如果该字段是ChronoField
然后查询执行。的OFFSET_SECONDS
字段返回的偏移值。所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是ChronoField
,然后通过调用作为参数传递this
TemporalField.getFrom(TemporalAccessor)
得到此方法的结果。是否可以得到值,以及值表示的值,由字段确定。
getLong
接口
TemporalAccessor
field
-领域有,不空
DateTimeException
如果不能得到一个价值领域
UnsupportedTemporalTypeException
如果字段不支持
ArithmeticException
如果数值溢出时
public <R> R query(TemporalQuery<R> query)
此使用指定的查询策略对象查询此偏移量。的TemporalQuery
对象定义了用来获得结果的逻辑。阅读查询的文档,了解该方法的结果将是什么。
这种方法的结果是通过调用指定的查询通过this
作为论据的TemporalQuery.queryFrom(TemporalAccessor)
方法得到的。
query
接口
TemporalAccessor
R
-结果的类型
query
-调用查询,不空
DateTimeException
如果无法查询(查询所定义)
ArithmeticException
如果数值溢出时(由查询定义)
public Temporal adjustInto(Temporal temporal)
这将返回一个相同的可观察类型的时间对象,与偏移量的输入与此相同。
调整是相当于用Temporal.with(TemporalField, long)
传递ChronoField.OFFSET_SECONDS
作为现场。
在大多数情况下,更清晰的用Temporal.with(TemporalAdjuster)
反向调用模式:
这两条线是等价的,但第二种方法是建议时间= thisoffset adjustinto(时间);时间=(thisoffset)与时间;
此实例是不可变的,不受此方法调用的影响。
adjustInto
接口
TemporalAdjuster
temporal
-调整目标对象,不为空
DateTimeException
如果无法适应
ArithmeticException
如果数值溢出时
public int compareTo(ZoneOffset other)
的偏移量进行比较的顺序,他们发生在世界各地的相同的时间。因此,对+10:00
抵消之前的+09:00
偏移等下来-18:00
。
比较是“等于”一致,所定义的Comparable
。
compareTo
接口
Comparable<ZoneOffset>
other
-其他日期进行比较,不为空
NullPointerException
-如果
other
是空的
public boolean equals(Object obj)
该比较是基于在秒的偏移量。这相当于通过身份证的比较。
equals
方法重写,继承类
ZoneId
obj
-检查对象,空返回false
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
ZoneId
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.