Java时间戳Instant和时钟Clock

一、Instant

我们已经知道,计算机存储的当前时间,本质上只是一个不断递增的整数。Java提供的System.currentTimeMillis()返回的就是以毫秒表示的当前时间戳。这个当前时间戳在java.time中以Instant类型表示,我们用Instant.now()获取当前时间戳,效果和System.currentTimeMillis()

1、静态方法,获取对象

其实我们还可以通过DateInstant toInstant()方法获取Instant对象

static Instant  ofEpochMilli(long epochMilli)
static Instant  ofEpochSecond(long epochSecond)
static Instant  ofEpochSecond(long epochSecond, long nanoAdjustment)

static Instant  from(TemporalAccessor temporal)

static Instant  now()
static Instant  now(Clock clock)

static Instant  parse(CharSequence text)
2、时间计算
//加
Instant plus(long amountToAdd, TemporalUnit unit)
Instant plus(TemporalAmount amountToAdd)
Instant plusMillis(long millisToAdd)
Instant plusNanos(long nanosToAdd)
Instant plusSeconds(long secondsToAdd)

//减
Instant minus(long amountToSubtract, TemporalUnit unit)
Instant minus(TemporalAmount amountToSubtract)
Instant minusMillis(long millisToSubtract)
Instant minusNanos(long nanosToSubtract)
Instant minusSeconds(long secondsToSubtract)

//自定义
Instant with(TemporalAdjuster adjuster)
Instant with(TemporalField field, long newValue) 
3、信息获取
int       get(TemporalField field)
long      getLong(TemporalField field)
long      getEpochSecond()//返回此瞬间到1970-01-01T00:00:00Z的秒数
int       getNano()
4、对象统计
long      toEpochMilli()//自1970-01-01T00:00:00Z时代以来的毫秒数
5、信息判断
boolean   isAfter(Instant otherInstant)
boolean   isBefore(Instant otherInstant)
boolean   isSupported(TemporalField field)
boolean   isSupported(TemporalUnit unit)
6、对象类型转换
Temporal    adjustInto(Temporal temporal)
OffsetDateTime  atOffset(ZoneOffset offset)
ZonedDateTime   atZone(ZoneId zone)
7、其他方法
long      until(Temporal endExclusive, TemporalUnit unit)
<R> R   query(TemporalQuery<R> query)

二、Clock

public abstract class Clock extends Object

1、获取对象
static Clock systemUTC() 获取格林尼治时钟
static Clock systemDefaultZone() 获取本地时钟
static Clock system(ZoneId zone)
static Clock fixed(Instant fixedInstant, ZoneId zone)
static Clock offset(Clock baseClock, Duration offsetDuration)
static Clock tick(Clock baseClock, Duration tickDuration)
static Clock tickMinutes(ZoneId zone)
static Clock tickSeconds(ZoneId zone)
2、其他方法
boolean equals(Object obj)
abstract ZoneId getZone()
abstract Instant    instant()
long    millis()
abstract Clock  withZone(ZoneId zone)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值