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 之间。 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时间刻度用于所有日期时间类。 这包括InstantLocalDateLocalTimeZonedDateTimeOffsetDateTimeDuration

已在 1.8 中添加。

适用于 . 的 java.time.InstantJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
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)

方法

名称 说明
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, Int64)

时间线上的瞬间点。

OfEpochSecond(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-01-01T00:00:00Z 的时期的毫秒数。

ToString()

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

(继承自 Object)
TruncatedTo(ITemporalUnit)

时间线上的瞬间点。

UnregisterFromRuntime()

时间线上的瞬间点。

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

时间线上的瞬间点。

Wait()

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

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

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

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <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)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

时间线上的瞬间点。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

适用于