声明:本文只给出本人认为Instant中可能相对常用的方法的使用示例,更多用法细节可见API文档或源码。


  • 获取(北京)瞬时时间点:

/*** 获取当前(北京)的瞬时时间点*/
@Test
public void test1() {// 获取当前InstantInstant instant = Instant.now(Clock.systemDefaultZone());// 由于北京时间 比 UTC时间晚8小时,所以我们需要得出北京的瞬时时间,还需要加上8小时// 提示:虽然可以通过LocalDateTime、ZonedDateTime更轻易的获得当前时间,但是本类//      既然是为了演示Instant,那么就只演示通过Instant如何获得当前北京瞬时时间instant = instant.plus(8, ChronoUnit.HOURS);// 输出形如: 2019-08-11T00:00:33.225Z// 注:不建议使用Instant查看当前时间点System.out.println(instant);
}
  • Instant与时间偏移量的相互转换:

/*** Instant 与 时间偏移量 的相互转换** 注:从1970-01-01 00:00:00开始计算偏移*/
@Test
public void  test2() {System.out.println(" System.currentTimeMillis : " + System.currentTimeMillis());Instant instant = Instant.now(Clock.systemDefaultZone());// -> Instant  =>  时间偏移量(毫秒)long offSetMilliSecond = instant.toEpochMilli();System.out.println(" Instant  =>  时间偏移量(毫秒) : " + offSetMilliSecond);// -> Instant  =>  时间偏移量(秒)long offSetSecond = instant.getEpochSecond();System.out.println(" Instant  =>  时间偏移量(秒) : " + offSetSecond);// 获取当前时间点(抛开整数秒不算)的纳秒数// 如: 12345.12秒,抛开整数秒不算,则为0.12秒,那么instant.getNano()的结//     果为 0.12 * 1000_000_000 = 120_000_000int nano = instant.getNano();System.out.println(" 获取当前时间点(抛开整数秒不算)的纳秒数 : " + nano);// -> 时间偏移量(毫秒)  =>  InstantInstant instant1 = Instant.ofEpochMilli(System.currentTimeMillis());// 将instant从 指向UTC时间 改为 指向北京时间instant1 = instant1.plus(8, ChronoUnit.HOURS);System.out.println(" 时间偏移量(毫秒)  =>  Instant : " + instant1);// -> 时间偏移量(秒)  =>  InstantInstant instant2 = Instant.ofEpochSecond(System.currentTimeMillis() / 1000);// 将instant从 指向UTC时间 改为 指向北京时间instant2 = instant2.plus(8, ChronoUnit.HOURS);System.out.println(" 时间偏移量(秒)  =>  Instant : " + instant2);
}
  • Instant的时间加、减:

/*** Instant的时间【加】、【减】** 注:下面的输出结果形如:*    原(北京瞬时)instant -> 2019-08-11T01:18:46.261Z*    原(北京瞬时)instant + 1小时,结果是 -> 2019-08-11T02:18:46.261Z*    原(北京瞬时)instant - 2小时,结果是 -> 2019-08-10T23:18:46.261Z*/
@Test
public void  test3() {// 获取当前瞬时时间,并转换为北京的瞬时时间Instant instant = Instant.now(Clock.systemDefaultZone());instant = instant.plus(8, ChronoUnit.HOURS);System.out.println("原(北京瞬时)instant -> " + instant);// + 1 小时Instant plusRes = instant.plus(1, ChronoUnit.HOURS);System.out.println("原(北京瞬时)instant + 1小时,结果是 -> " + plusRes);// - 2 小时Instant minusRes = instant.minus(2, ChronoUnit.HOURS);System.out.println("原(北京瞬时)instant - 2小时,结果是 -> " + minusRes);
}
  • 判断两个Instant之间谁早谁晚:

/*** 判断两个Instant之间谁早谁晚** 注:下面的输出结果形如:*    瞬时时间点instantOne晚于instantTwo ? --- false*    瞬时时间点instantOne早于instantTwo ? --- true*/
@Test
public void  test4() {// Instant 一Instant instantOne = Instant.now(Clock.systemDefaultZone());// Instant 二Instant instantTwo = instantOne.plus(8, ChronoUnit.HOURS);boolean isAfterResult = instantOne.isAfter(instantTwo);System.out.println("瞬时时间点instantOne晚于instantTwo ? --- " + isAfterResult);boolean isBeforeResult = instantOne.isBefore(instantTwo);System.out.println("瞬时时间点instantOne早于instantTwo ? --- " + isBeforeResult);
}

^_^ 如有不当之处,欢迎指正

^_^ 参考文档
              《jdk api 1.8_google.CHM》

^_^ 测试代码托管链接
               https://github.com/JustryDeng…Jdk8Feature

^_^ 本文已经被收录进《程序员成长笔记(五)》,笔者JustryDeng

【jdk1.8特性】之Instant相关推荐

  1. 【jdk1.8特性】之Optional

    简介:Optional类是jdk1.8开始为我们提供的一个处理null的类. 代码实例说明: 声明:下面只示例介绍jdk1.8里Optional的用法,对于更高版本jdk里对Optional的进一步优 ...

  2. JDK1.8特性之StringJoiner

    StringBuilder.StringBuffer.String这三个的区别,很多文章都有在说. 这边也给大家做一个简要的概述 一:String.StringBuilder.StringBuffer ...

  3. JAVA时间戳类Instant

    JAVA时间戳类Instant 前言 在JAVA8之前的版本,去获取时间戳(毫秒级别)常用的办法有两种 // 方法一:构建日期Date类然后调用getTime方法 Date date = new Da ...

  4. Sentinel(第三篇)_Springboot2.x+Sentinel监控信息基于MySQL持久化

    前言 根据官方提供的wiki文档,sentinel控制台的实时监控数据,默认提供的存储数据时间为 5 分钟以内的数据.如果我们的需求是需要持久化的,那就需要我们自己定制实现相关的接口. https:/ ...

  5. Java包装类API详解

    在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类 ...

  6. Java初阶知识总结

    一.语法部分 java技术结构 J2SE : 表示JAVA标准版 J2EE : java企业版 J2ME : 移动版 java跨平台 基于JVM java是跨平台的 , JVM不是 . 入门程序 每一 ...

  7. 【Java6】Date类/Calendar类,System类/Math类,包装类,集合,泛型,内部类

    文章目录 1.Date类:getTime(),SimpleDateFormat 2.Calendar类:只有子类对象才能向上转型 3.System类:System.exit(0) 4.Math类:ce ...

  8. 看完这篇 HashMap ,和面试官扯皮就没问题了

    来源 | Java 建设者 责编 | Carol 封图 | CSDN 下载自视觉中国 (如果你没有时间细抠本文,可以直接看 HashMap 概述,能让你对 HashMap 有个大致的了解) HashM ...

  9. java学习--基础知识进阶第五天--API、 Object类 System类、日期相关类、包装类正则表达式...

    今日内容介绍 u  Object类 & System类 u  日期相关类 u  包装类&正则表达式 第1章 Object类 & System类 1.1 Object类 1.1. ...

  10. hashmap是有序还是无序_说实话,你要是看完这篇 HashMap ,和面试官扯皮真的就没问题了!

    文章来源:看完这篇 HashMap ,和面试官扯皮就没问题了 原文作者:cxuan 来源平台:微信公众号 (如果你没有时间细抠本文,可以直接看 HashMap 概述,能让你对 HashMap 有个大致 ...

最新文章

  1. 消息队列 RabbitMQ
  2. iOS如何转换十三位的时间戳
  3. DeviceToken 获取失败,原因:Error Domain=NSCocoaErrorDomain Code=3000 未找到应用程序的“aps-environment”的授权字符串......
  4. 关于C++中cin.ignore()的问题
  5. vue将每个路由打包成html,Ant Design Vue pro 动态路由的实现和打包
  6. DDOS攻击原理介绍,可怕的DDos攻击
  7. 学校计算机联想硬盘保护系统管理员密码,联想硬盘保护系统管理员密码是多少...
  8. i7 8750h支持linux,i7-9750H和i7-8750H性能对比:差距仅5%,日常使用无区别
  9. C语言中将数字形式的字符串转换为数字的方法
  10. 大龄程序员的出路究竟在何处?从369个过来人问答贴里,我们得到了答案
  11. emacs-打开和关闭
  12. 转载 - Linux使用技巧锦集
  13. html打开无法显示网页怎么回事,Win7打开网页提示“Internet Explorer无法显示该页面”如何解决?...
  14. Load Balancer as a Service (LBaaS V2.0)
  15. open source软件:Nomad介绍(任务编排工具)
  16. 扩大文字a链接的可点击区域
  17. 数据库有char和nchar varchar 和nvarchar区别是啥?
  18. 《蹭课神器》Alpha版使用说明
  19. Already included file name .......
  20. 路径规划与轨迹规划学习3——曲线插值法

热门文章

  1. EKMA 曲线及大气 O3 来源解析
  2. 常见的网络攻击方法与防范措施
  3. 静态HTML网页设计作品:旅游网站设计——开心旅游网(15页) HTML+CSS+JavaScript 主题度假酒店
  4. 下载 沙耶之歌Android_沙耶之歌安卓版
  5. qos 流控功能_QOS流量控制管理详解!
  6. 如何使用虚拟专用网络登录网络设备?
  7. 苹果应用商店AppStore审核规则指南
  8. 树莓派3b+开启无线wifi热点
  9. 2021年开始,Adobe Flash Player 不能用了?
  10. 百宝云数组语法新手教程