JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)

目录

ZoneId

常见方法

用法示例

ZoneDateTime 

常见方法

用法示例

Instant

常见方法

用法示例


如果在开发中我们有这样的需求:我们的系统需要获取美国现在的时间,或者其他地区的时间给用户观看,或者进行一些处理,那应该怎么办呢?

美国时间和我们系统当前的时间肯定是不一样的,遇到这样的需求,我们就要用到ZoneId来解决了。

ZoneId它代表的是时区,我们先来了解一下常识:

时区

  • 由于世界各个国家与地区的经度不同,各地区的时间也有所不同,因此会划分为不同的时区。

世界标准时间(UTC)       

中国标准时间:世界标准时间(UTC)   + 8小时

ZoneId

什么是时区Id呢?

为了方便记忆,通常我们会用一个时区里的标志性城市来代表这个时区;格式一般是:

  • 洲名/城市名
  • 国家名/城市名

在Java中,它是支持亚洲/上海,亚洲/重庆这样的时区信息的,例如:

  • Asia/Shanghai
  • Asia/Chongqing
  • America/New_York

常见方法

方法名说明
public static Set<String> getAvailableZonelds()获取lava中支持的所有时区
public static Zoneld systemDefault()获取系统默认时区
public static Zoneld of(String zoneld)获取一个指定时区

用法示例

运行结果:

ZoneDateTime 

  • 带时区的时间

常见方法

方法名说明
public static ZonedDateTime now()获取当前时区的ZonedDateTime对象
public static ZonedDateTime now(Zoneld zone)获取指定时区的ZonedDateTime对象
getYear、getMonthValue、 getDayOfMonth、 getDayOfYeargetDayOfWeek、获取年月日、时分秒、纳秒等
getHour、getMinute、getSecond、getNano
public ZonedDateTime withXxx(时间)修改时间系列的方法
public ZonedDateTime minusXxx(时间)减少时间系列的方法
public ZonedDateTime plusXxx(时间)增加时间系列的方法

用法示例

运行结果:

其余操作都是与LocalDateTime等类是一样的。

Instant

Instant是代替传统的Date日期类的,Instant  时间线上的某个时刻/时间戳

  • 通过获取Instant的对象可以拿到此刻的时间,该时间由两部分组成:从1970-01-01  00:00:00开始走到此刻的总秒数 + 不够1秒的纳秒数

Tip:

  • 1秒 = 1000毫秒
  • 1毫秒 = 1000微秒
  • 1微秒 = 1000纳秒
  • 1秒 = 1000 000 000纳秒

常见方法

方法名说明
public static Instant now()获取当前时间的Instant对象(标准时间)
public long getEpochSecond()获取从1970-01-01T00:00:00开始记录的秒数。
public int getNano()从时间线开始,获取从第二个开始的纳秒数
plusMillis、plusSeconds、plusNanos增加时间系列的方法
minusMillis、minusSeconds、minusNanos减少时间系列的方法
equals、isBefore、isAfter判断系列的方法

用法示例

运行结果:

Instant的作用做代码的性能分析,或者记录用户的操作时间点

  • 传统的Date类,只能精确到毫秒,并且是可变对象;
  • 新增的Instant类,可以精确到纳秒,并且是不可变对象,推荐用Instant代替Date


END


学习自:黑马程序员——JavaSE课程

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值