首页 > 编程语言 >Java8 新特性之Instant 时间戳类

Java8 新特性之Instant 时间戳类

时间:2022-12-23 11:55:05浏览次数:44  
标签:Instant 获取 System 特性 毫秒 now Java8

一、Instant简介

Instant类是Java8 中补充的一个 时间戳类,nstant 可以使用静态方法 now()或者of()方法来创建一个实例对象。

Instant 类  是Java8 中补充的一个 时间戳类。相较于 System.currentTimeMillis()获取到【毫秒】,Instant 可以更为精确的获取到【纳秒】。

Instant 可以使用静态方法 now() 或者 of() 方法来创建一个实例对象。

Instant 类的常用API :
   * Instant 类的 getEpochSecond() : 获取的是秒
   * Instant 类的 toEpochMilli() : 获取的是毫秒,同 System.currentTimeMillis()
   * Instant 类的 getNano() : 获取的是纳秒,更精确了

同时,Instant 类还是 Java8 中 提供的新的 日期时间类LocalDateTime 与 原来的 java.util.Date 类之间转换的桥梁。

注意,在java.util.Date类与LocalDate、LocalDateTime类之间转换中 均可以通过Instant作为中间类完成转换,Instant的使用还是比较方便的,下面介绍Instant的使用。

 

二、创建Instant实例

Instant now = Instant.now(); System.out.println("now:"+now);

控制台输出

now:2018-07-09T08:59:08.853Z

注意:通过这种方式获取的时间戳与北京时间相差8个时区,需要修正为北京时间,通过查看源代码发现Instant.now()使用等是UTC时间Clock.systemUTC().instant()。LocalDate、LocalDateTime 的now()方法使用的是系统默认时区 不存在Instant.now()的时间问题。


*****解决方法
增加8个小时

Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8)); System.out.println("now:"+now);

控制台输出:

now:2018-07-09T16:58:48.188Z

 

三、Instant获取long类型的10位秒数&13位毫秒数

Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8)); System.out.println("秒数:"+now.getEpochSecond()); System.out.println("毫秒数:"+now.toEpochMilli());

控制台输出:

LocalDateTime 毫秒数:1539141733010

 

标签:Instant,获取,System,特性,毫秒,now,Java8
From: https://www.cnblogs.com/xiaweicn/p/17000386.html

相关文章

  • 【ES6新特性】一行代码解决:搜索对象数组,匹配具体字段属性值的返回值和索引的问题
    arr.find(v=>v.key=="需要搜索的值")//返回搜索匹配字段属性值的对象arr.findIndex(v=>v.key=="需要搜索的值")//返回匹配项的索引值......
  • MySQL8.0新特性--基于Write Set并行复制
    复制简介MySQL早期只有单线程复制,即IO线程接收master的binlog,并写入本地的relaylog中,SQL线程负责从relaylog中服务event并进行apply。当主库的写入压力较大时,备库的IO线......
  • MySQL8.0新特性--Clone Plugin克隆
    ClonePlugin简介8.0.17引入cloneplugin,允许从本地或者远程的MySQL中克隆数据克隆的数据包括schema、表、表空间、元数据等等,克隆的数据是一个完整的数据目录,插件可以使......
  • MySQL8.0新特性--使用SQL管理undo表空间
    8.0之前的undotablespaces管理InnoDB的undolog最主要是存储回滚数据,是实现MVCC的重要组件;innodb的一个rollbacksegment分为1024个undologsegment,即最大支持1024个并......
  • MySQL8.0新特性--新数据字典
    一、简介数据字典(DataDictionary),存储数据库的元数据信息,如database、table、index、column等。由于MySQL数据库是插件式数据库,分为SERVER层和存储引擎层,存储引擎层可以......
  • MySQL8.0新特性-原子DDL
    MySQL8.0以前的DDLDDL(DataDefinitionLanguage)定义了数据在数据库中的结构、关系以及权限等,比如CREATE、ALTER、DROP、GRANT等等。在MySQL8.0之前的版本中,由于架构的原......
  • 谈谈流计算中的『Exactly Once』特性
    本文翻译自streaml.io网站上的一篇博文:“ExactlyonceisNOTexactlythesame”,分析了流计算系统中常说的『ExactlyOnce』特性,主要观点是:『精确一次』并不保证是完......
  • net中c#如何获取字段、属性、方法的自定义特性?
    在C#中,自定义特性的创建用于将声明信息与代码(程序集、类型、方法、属性等)相关联,以任何需要的方式。特性增强了.NET的可扩展性能。传送门net中c#如何获取字段、属性、方法......
  • Java 特性、三大版本、JDK、JRE、JVM
    Java的特性 简单性面向对象可移植性writeonce,runanywhere高性能分布式动态性通过反射机制多线程安全性异常机制健壮性 *思考?j......
  • java8-时间相关代码整理
    获取昨天起止时刻,就是0点和23点59分59秒LocalDateTime.now().minus(Period.ofDays(1)).with(LocalTime.MIN)LocalDateTime.now().minus(Period.ofDays(1)).with(LocalTi......