20230522 java.time.Instant

发布时间 2023-09-05 09:34:53作者: 流星<。)#)))≦

介绍

  • java.time.Instant
  • 类声明
@jdk.internal.ValueBased
public final class Instant implements Temporal, TemporalAdjuster, Comparable<Instant>, Serializable
  • 时间线上的一个瞬时点,可以理解成时刻
  • 被称为“新纪元”的时间线原点被设置为穿过伦敦格林威治皇家天文台的本初子午线所处时区的 1970 年 1 月 1 日的午夜
  • 存储了一个代表纪元秒的long整型 (seconds) 和一个int纳秒的整型 (nanos)
  • Java API 定义了自己的时间尺度,即 Java Time-Scale ,使用 JSR-310 API
  • 不可变,线程安全
  • 实现 Temporal ,支持的时间单位( TemporalUnit )有
    • NANOS
    • MICROS
    • MILLIS
    • SECONDS
    • MINUTES
    • HOURS
    • HALF_DAYS
    • DAYS
  • 实现 TemporalAccessor ,支持的时间域( TemporalField )有
    • NANO_OF_SECOND
    • MICRO_OF_SECOND
    • MILLI_OF_SECOND
    • INSTANT_SECONDS
  • 类似于 java.util.Date ,通过 toInstantfrom 相互转换

API

常量字段

  • EPOCH : 1970-01-01T00:00:00Z
    • 纪元时刻
  • MIN : -1000000000-01-01T00:00:00Z
    • 支持的最小 Instant
  • MAX : +1000000000-12-31T23:59:59.999999999Z
    • 支持的最大 Instant

static

  • now
    • Instant now()
    • Instant now(Clock clock)
    • 从系统时钟获取当前时刻,这将查询 system UTC clock 以获取当前时刻
  • from
    • Instant from(TemporalAccessor temporal)
    • 转换为 Instant
  • ofEpochMilli
    • Instant ofEpochMilli(long epochMilli)
    • 使用毫秒获取Instant
  • ofEpochSecond
    • Instant ofEpochSecond(long epochSecond)
    • Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
    • 使用秒数获取Instant
  • parse
    • Instant parse(final CharSequence text)
    • toString
    • 格式示例:2023-06-29T10:07:34.814427100Z

public

  • getEpochSecond

    • seconds
  • getNano

    • nanos
  • atOffset

    • 将此时刻与偏移量相结合以创建 OffsetDateTime
  • atZone

    • 将此时刻与时区结合起来创建 ZonedDateTime
  • isAfter

  • isBefore

  • toEpochMilli

    • 将此时刻转换为从 1970-01-01T00:00:00Z 纪元开始的毫秒数
  • truncatedTo

    • 截断
  • toString

    • ISO-8601 表示形式
    • 格式示例:2023-06-29T10:07:34.814427100Z

算数计算

  • minus
  • minusMillis
  • minusNanos
  • minusSeconds
  • plus
  • plusMillis
  • plusNanos
  • plusSeconds