Share via


Instant 类

定义

时间线上的瞬间点。

[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
继承
Instant
属性
实现

注解

时间线上的瞬间点。

此类为时间线上的单个瞬时点建模。 这可用于记录应用程序中的事件时间戳。

即时范围需要存储大于 long的数字。 为实现此目的,类存储 long 表示纪元秒和 int 纳秒的 ,始终介于 0 和 999,999,999 之间。 纪元秒是从标准 Java 纪元 1970-01-01T00:00:00Z 中测量的,其中,纪元之后的瞬间有正值,而较早的瞬间有负值。 对于纪元秒和纳秒部分,时间线上的值始终大于较小的值。

<h2>时间刻度</h2>

太阳日的长度是人类测量时间的标准方式。 传统上,这被细分为24小时60分60秒,形成86400秒。

现代计时基于原子时钟,这些原子时钟精确定义了相对于 Caesium 原子的转换的 SI 秒。 SI 秒的长度被定义为非常接近一天的第 86400 部分。

不幸的是,随着地球的旋转,一天的长度会有所不同。 此外,随着时间的推移,随着地球的速度变慢,一天的平均长度越来越长。 因此,2012 年太阳日的长度略长于 86400 SI 秒。 任何给定日期的实际长度和地球减速的量是无法预测的,只能通过测量来确定。 UT1 时间刻度捕获一天的准确长度,但仅在一天完成后的某个时间可用。

UTC 时间刻度是一种标准方法,用于将 UT1 中的所有额外秒分数捆绑成整秒,称为 闰秒。 根据地球的自转变化,可以添加或删除闰秒。 因此,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 时间刻度用于所有日期时间类。 这包括 InstantLocalDateLocalTimeOffsetDateTimeZonedDateTimeDuration

在 1.8 中添加。

java.time.InstantJava 文档。

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

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Epoch

时间线上的瞬间点。

EpochSecond

获取 Java 时期 1970-01-01T00:00:00Z 中的秒数。

Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

时间线上的瞬间点。

(继承自 Object)
JniPeerMembers

时间线上的瞬间点。

Max

时间线上的瞬间点。

Min

时间线上的瞬间点。

Nano

获取从第二个开始的时间线之后沿时间线的纳秒数。

PeerReference

时间线上的瞬间点。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

(继承自 Object)

方法

AdjustInto(ITemporal)

时间线上的瞬间点。

AtOffset(ZoneOffset)

时间线上的瞬间点。

AtZone(ZoneId)

时间线上的瞬间点。

Clone()

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

(继承自 Object)
CompareTo(Instant)

时间线上的瞬间点。

Dispose()

时间线上的瞬间点。

(继承自 Object)
Dispose(Boolean)

时间线上的瞬间点。

(继承自 Object)
Equals(Object)

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

(继承自 Object)
From(ITemporalAccessor)

时间线上的瞬间点。

Get(ITemporalField)

时间线上的瞬间点。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetLong(ITemporalField)

时间线上的瞬间点。

IsAfter(Instant)

时间线上的瞬间点。

IsBefore(Instant)

时间线上的瞬间点。

IsSupported(ITemporalField)

时间线上的瞬间点。

IsSupported(ITemporalUnit)

时间线上的瞬间点。

JavaFinalize()

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

(继承自 Object)
Minus(Int64, ITemporalUnit)

时间线上的瞬间点。

Minus(ITemporalAmount)

时间线上的瞬间点。

MinusMillis(Int64)

时间线上的瞬间点。

MinusNanos(Int64)

时间线上的瞬间点。

MinusSeconds(Int64)

时间线上的瞬间点。

Notify()

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

(继承自 Object)
NotifyAll()

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

(继承自 Object)
Now()

时间线上的瞬间点。

Now(Clock)

时间线上的瞬间点。

OfEpochMilli(Int64)

时间线上的瞬间点。

OfEpochSecond(Int64)

时间线上的瞬间点。

OfEpochSecond(Int64, Int64)

时间线上的瞬间点。

Parse(ICharSequence)

时间线上的瞬间点。

Parse(String)

时间线上的瞬间点。

Plus(Int64, ITemporalUnit)

时间线上的瞬间点。

Plus(ITemporalAmount)

时间线上的瞬间点。

PlusMillis(Int64)

时间线上的瞬间点。

PlusNanos(Int64)

时间线上的瞬间点。

PlusSeconds(Int64)

时间线上的瞬间点。

Query(ITemporalQuery)

时间线上的瞬间点。

Range(ITemporalField)

时间线上的瞬间点。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

时间线上的瞬间点。

(继承自 Object)
ToEpochMilli()

将此瞬间转换为 1970-01-01T00:00:00Z 时期的毫秒数。

ToString()

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

(继承自 Object)
TruncatedTo(ITemporalUnit)

时间线上的瞬间点。

UnregisterFromRuntime()

时间线上的瞬间点。

(继承自 Object)
Until(ITemporal, ITemporalUnit)

时间线上的瞬间点。

Wait()

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

(继承自 Object)
Wait(Int64)

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

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

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

(继承自 Object)
With(ITemporalAdjuster)

时间线上的瞬间点。

With(ITemporalField, Int64)

时间线上的瞬间点。

显式接口实现

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)

扩展方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

时间线上的瞬间点。

GetJniTypeName(IJavaPeerable)

时间线上的瞬间点。

适用于