Instant 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
时间线上的瞬间点。
[Android.Runtime.Register("java/time/Instant", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class Instant : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.IComparable, Java.Time.Temporal.ITemporal, Java.Time.Temporal.ITemporalAdjuster
[<Android.Runtime.Register("java/time/Instant", ApiSince=26, DoNotGenerateAcw=true)>]
type Instant = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IComparable
interface ITemporal
interface ITemporalAccessor
interface ITemporalAdjuster
- 继承
- 属性
- 实现
注解
时间线上的瞬间点。
此类在时间线上为单个即时点建模。 这可用于记录应用程序中的事件时间戳。
即时的范围要求存储大于一 long个数字。 为此,该类存储一个 long 表示纪元秒和一个 int 表示纳秒秒,该秒数将始终介于 0 到 999,999,999 之间。 epoch-seconds 从标准Java纪元1970-01-01T00:00:00Z测量,即在纪元之后的瞬间具有正值,而早期实例具有负值。 对于 epoch-second 和 nanosecond 部分,时间线上的值总是比较小的值晚一些。
<h2>时间刻度</h2>
太阳日的长度是人类测量时间的标准方式。 这传统上被细分为24小时60分60秒,形成86400秒的第二天。
现代守时基于原子时钟,它精确定义相对于 Caesium 原子转换的 SI 秒。 SI 秒的长度定义为接近一天的第 86400 部分。
不幸的是,随着地球旋转一天的长度变化。 此外,随着地球变慢,一天的平均长度越来越长。 因此,2012 年太阳日长度略长于 86400 SI 秒。 任何给定日的实际长度和地球速度缓慢的量是不可预测的,只能通过测量来确定。 UT1 时间刻度捕获当天的准确长度,但仅在当天完成后一段时间可用。
UTC 时间刻度是一种标准方法,用于将 UT1 到整秒的所有附加分数捆绑在一起,称为 跳秒。 根据地球的旋转变化,可以添加或删除一个 leap-second。 因此,UTC 允许每天有 86399 SI 秒或 86401 SI 秒(如有必要),以便使当天与太阳保持一致。
现代 UTC 时间刻度于 1972 年引入,引入了整个跨越秒的概念。 1958年至1972年,UTC 的定义很复杂,次要次秒跃升和对名义秒长度的改变。 从 2012 年开始,讨论将再次更改 UTC 的定义,并有可能删除跳跃秒或引入其他更改。
鉴于上述准确守时的复杂性,此Java API 定义了其自己的时间刻度,即Java时间刻度。
Java Time-Scale将每个日历日划分为确切的 86400 个细分,称为秒。 这些秒可能与 SI 秒不同。 它与事实上的国际民用时间规模密切相关,其定义不时变化。
Java Time-Scale对时间线的不同段有不同的定义,每个定义都基于国际时间的共识,这些时间刻度用作民用时间的基础。 每当修改或替换国际商定的时间刻度时,必须为其定义Java Time-Scale的新段。 各段必须满足以下要求:<>><Java Time-Scale应密切匹配潜在的国际民事时间范围:<李丽><>Java Time-Scale每天中午完全匹配国际民用时间规模:<李丽><>Java Time-Scale应与国际民事时间范围有精确界定的关系。</li></ul> 目前,截至 2013 年,Java时间刻度中有两个段。
对于从1972-11-03(下面讨论的确切边界)到进一步通知的段,共识国际时间刻度为 UTC(跨越秒)。 在此段中,Java Time-Scale与 UTC-SLS 相同。 这与 UTC 在没有跳跃秒的天数相同。 在确实有一个跳跃秒的天数中,跳跃秒在当天的最后 1000 秒内平均分布,保持每天完全相同的 86400 秒的外观。
对于1972-11-03之前的段,延伸回任意距离,共识国际时间刻度被定义为UT1,以专业方式应用,这相当于(平均)太阳时间在黄金经线(格林威治)。 在这个领域,Java Time-Scale与国际时间范围的共识相同。 两段之间的确切边界是 UT1 = UTC 的即时时间,介于 1972-11-03T00:00 和 1972-11-04T12:00 之间。
使用 JSR-310 API 实现Java时间刻度不需要提供第二次准确的时钟,或者单调或平滑地进行。 因此,实现不需要实际执行 UTC-SLS,否则请注意跳跃秒。 但是,JSR-310 确实要求实现必须记录在定义表示当前即时的时钟时使用的方法。 有关可用时钟的详细信息,请参阅 Clock 。
Java时间刻度用于所有日期时间类。 这包括Instant、LocalDate、LocalTime和 ZonedDateTimeOffsetDateTimeDuration。
已在 1.8 中添加。
适用于 . 的 java.time.InstantJava 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
属性
| 名称 | 说明 |
|---|---|
| Class |
返回此 |
| Epoch |
时间线上的瞬间点。 |
| EpochSecond |
获取从 1970-01-01T00:00:00Z Java纪元的秒数。 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| JniIdentityHashCode |
时间线上的瞬间点。 (继承自 Object) |
| JniPeerMembers |
时间线上的瞬间点。 |
| Max |
时间线上的瞬间点。 |
| Min |
时间线上的瞬间点。 |
| Nano |
从第二个开始处获取沿时间线的纳秒数。 |
| PeerReference |
时间线上的瞬间点。 (继承自 Object) |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IComparable.CompareTo(Object) |
时间线上的瞬间点。 |
| IJavaPeerable.Disposed() |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.Finalized() |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.JniManagedPeerState |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
时间线上的瞬间点。 (继承自 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
时间线上的瞬间点。 (继承自 Object) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
时间线上的瞬间点。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |