ZoneId 类

定义

时区 ID,例如 Europe/Paris

[Android.Runtime.Register("java/time/ZoneId", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class ZoneId : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/time/ZoneId", ApiSince=26, DoNotGenerateAcw=true)>]
type ZoneId = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
ZoneId
派生
属性
实现

注解

时区 ID,例如 Europe/Paris

A ZoneId 用于标识用于在 a Instant 和 a LocalDateTime之间转换的规则。 ID 有两种不同的 ID 类型:<ul><li>固定偏移量 - 与 UTC/格林威治完全解析的偏移量,它对所有本地日期时间 <li>地理区域使用相同的偏移量 - 一个区域,其中一组特定的规则用于查找 UTC/格林威治的偏移量应用 </ul> 大多数固定偏移量。ZoneOffset 调用 #normalized() 任何 ZoneId 值将确保固定偏移 ID 表示为一个 ZoneOffset

由以下方法定义 ZoneRules实际规则:描述偏移变化的时间和方式。 此类只是用于获取基础规则的 ID。 之所以采用此方法,是因为规则由政府定义并经常更改,而 ID 是稳定的。

区别具有其他效果。 序列化 ZoneId 只会发送 ID,而序列化规则会发送整个数据集。 同样,两个 ID 的比较仅检查 ID,而两个规则的比较将检查整个数据集。

<h2>时区 ID</h2> ID 在系统中是唯一的。 有三种类型的 ID。

最简单的 ID 类型是从 ZoneOffset. 这包括以“+”或“-”开头的“Z”和 ID。

下一种类型的 ID 是带有某种形式的前缀的偏移样式 ID,例如“GMT+2”或“UTC+01:00”。 识别的前缀为“UTC”、“GMT”和“UT”。 偏移量是后缀,将在创建过程中规范化。 这些 ID 可以规范化为 ZoneOffset using normalized()

第三种类型的 ID 是基于区域的 ID。 基于区域的 ID 必须包含两个或多个字符,而不是以“UTC”、“GMT”、“UT”、“+”或“-”开头。 基于区域的 ID 由配置定义。 配置侧重于提供从 ID 到基础 ZoneRules的查找。

时区规则由政府定义,并经常更改。 有许多组织称为组,用于监视时区更改并整理它们。 默认组为 IANA 时区数据库(TZDB)。 其他组织包括国际田联(航空业机构)和Microsoft。

每个组为它提供的区域 ID 定义其自己的格式。 TZDB 组定义了“欧洲/伦敦”或“美国/New_York”等 ID。 TZDB ID 优先于其他组。

强烈建议将组名称包含在 TZDB 以外的组提供的所有 ID 中,以避免冲突。 例如,IATA 航空公司时区区域 ID 通常与三个字母机场代码相同。 然而,乌得勒支机场有代码“UTC”,这显然是一个冲突。 TZDB 以外的组的区域 ID 的建议格式为“group~region”。 因此,如果定义了 IATA 数据,Utrecht 机场将是“IATA~UTC”。

<h2>序列化</h2> 此类可以序列化并存储外部形式的字符串区域 ID。 子 ZoneOffset 类使用仅存储 UTC/格林威治偏移量的专用格式。

ZoneId可以在 ID 未知的Java运行时中反序列化 A。 例如,如果服务器端Java运行时已使用新的区域 ID 进行更新,但客户端Java运行时尚未更新。 在这种情况下,ZoneId对象将存在,可以使用 getIdequalshashCodetoStringgetDisplayNamenormalized查询对象。 但是,任何调用getRules都将失败,ZoneRulesException 此方法旨在允许ZonedDateTime在具有不完整时区信息的Java运行时上加载和查询,但不允许对其进行修改。

已在 1.8 中添加。

Java文档java.time.ZoneId

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
ZoneId(IntPtr, JniHandleOwnership)

时区 ID,例如 Europe/Paris

属性

名称 说明
AvailableZoneIds

时区 ID,例如 Europe/Paris

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
Id

时区 ID,例如 Europe/Paris

JniIdentityHashCode

时区 ID,例如 Europe/Paris

(继承自 Object)
JniPeerMembers

时区 ID,例如 Europe/Paris

PeerReference

时区 ID,例如 Europe/Paris

(继承自 Object)
Rules

时区 ID,例如 Europe/Paris

ShortIds

时区 ID,例如 Europe/Paris

ThresholdClass

时区 ID,例如 Europe/Paris

ThresholdType

时区 ID,例如 Europe/Paris

方法

名称 说明
Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

时区 ID,例如 Europe/Paris

(继承自 Object)
Dispose(Boolean)

时区 ID,例如 Europe/Paris

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
From(ITemporalAccessor)

时区 ID,例如 Europe/Paris

GetDisplayName(TextStyle, Locale)

时区 ID,例如 Europe/Paris

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Normalized()

时区 ID,例如 Europe/Paris

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Of(String, IDictionary<String,String>)

时区 ID,例如 Europe/Paris

Of(String)

时区 ID,例如 Europe/Paris

OfOffset(String, ZoneOffset)

时区 ID,例如 Europe/Paris

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SystemDefault()

时区 ID,例如 Europe/Paris

ToArray<T>()

时区 ID,例如 Europe/Paris

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

时区 ID,例如 Europe/Paris

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.Finalized()

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.JniManagedPeerState

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

时区 ID,例如 Europe/Paris

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

时区 ID,例如 Europe/Paris

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

时区 ID,例如 Europe/Paris

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于