jdk8带来了新的时间工具类,主要有LocalDateTime(时间+日期) ,LocalDate(日期) 以及LocalTime(时间)。下面来看看常用用法在新的工具类上如何使用。

1. 获取当前的时间

LocalDateTime.now()

LocalDate.now()

LocalTime.now()

复制代码

获取当前时间很简单,直接调用now方法就可以,上述代码运行结果如下

2019-08-23T16:17:18.439679

2019-08-23

16:17:18.441228

复制代码

2. 获取其他时区时间

1 获取utc标准时间

LocalDateTime.now(ZoneId.of("UTC"))

LocalDate.now(ZoneId.of("UTC"))

LocalTime.now(ZoneId.of("UTC"))

复制代码

运行结果如下

2019-08-23T08:20:34.065057

2019-08-23

08:20:34.065973

复制代码

可以看出比第一次运行的时候少了8个小时,因为北京时间是东8区,所以会比utc标准时间多上8个小时。

2 根据utc为标准获取其他时区时间

LocalDateTime.now(ZoneId.of("+7"))

LocalDate.now(ZoneId.of("+7"))

LocalTime.now(ZoneId.of("+7"))

复制代码

根据utc标准获取其他时区时间很简单,东区就+,西区就-;

3. 时间格式化和字符串转换时间

1 格式化时间

DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now())

DateTimeFormatter.ofPattern("yyyy_MM_dd").format(LocalDate.now())

DateTimeFormatter.ofPattern("HHmmss").format(LocalTime.now())

复制代码

DateTimeFormatter是定义时间格式的工具类。三个类都可以使用,但是要注意LocalDate不要定义时间格式,LocalTime不要定义日期格式,否则会报错。

2 格式化字符串转时间

LocalDateTime.parse("20190801000000", DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))

复制代码

4.新建需要的时间

LocalDateTime.of(2018, 8, 13, 23, 56, 2)

复制代码

根据年月日时分秒可以直接新建时间,非常方便。

5.时间和时间戳相互转换

1.时间转时间戳

LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli()

复制代码2.时间戳转时间

LocalDateTime.ofInstant(Instant.ofEpochMilli(1566550144837L), ZoneId.systemDefault())

复制代码

6.时间的计算

1.获取一个某个时间的年月日时分秒属性

LocalDateTime now = LocalDateTime.now();

now.getYear();

now.getMonth();

now.getDayOfMonth();

now.getDayOfYear();

now.getDayOfWeek();

now.getHour();

now.getMinute();

now.getSecond();

复制代码2.计算某个日期的增减

LocalDateTime now = LocalDateTime.now();

//增加一年

now.plusYears(1);

//减少一年

now.minusYears(1);

//增加一月

now.plusMonths(1);

//减少一月

now.minusMonths(1);

.......

复制代码3.计算两个日期之间的差值

LocalDateTime time1 = LocalDateTime.of(2019, 8, 31, 0, 0);

LocalDateTime time2 = LocalDateTime.of(2019, 7, 31, 0, 0);

System.out.println(time1.until(time2,ChronoUnit.DAYS));

result : -31

复制代码

很方便就可以计算出两个日期之间相差的天数,想要计算其他值也是一样。

4.计算这个地方留个小彩蛋吧

LocalDateTime time2 = LocalDateTime.now().minusDays(1);

LocalDateTime time1 = LocalDateTime.now();

System.out.println(time2.until(time1,ChronoUnit.DAYS));

-----------

LocalDateTime time1 = LocalDateTime.now();

LocalDateTime time2 = LocalDateTime.now().minusDays(1);

System.out.println(time2.until(time1,ChronoUnit.DAYS));

复制代码

看看两个计算出的结果,和你想的一不一样呢。

java8彩蛋_随笔,JDK8的新时间工具类相关推荐

  1. python游戏彩蛋_用python写游戏之2D跑酷游戏(一)

    2D的跑酷游戏有很多,著名的例如Chrome的彩蛋小游戏,手机上的天天酷跑等.打开Chrome浏览器输入 chrome://dino/,按空格激活彩蛋 这篇文章来分析一下这类横版跑酷游戏的主角奔跑,跳 ...

  2. 重学Java8新特性(四) : 日期时间API、LocalDateTime、DateTimeFormatter、开发中时间工具类(常用)

    文章目录 一.JDK8中日期时间API的介绍 1.1.LocalDate.LocalTime.LocalDateTime的使用 2.2.Instant类的使用 2.3.DateTimeFormatte ...

  3. java8的时间工具类_JAVA8日期工具类

    /*** Java8日期时间工具类 * *@authorJourWon * @date 2020/12/13*/ public classLocalDateUtils {/*** 显示年月日时分秒,例 ...

  4. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?

    本文收集各种 Java 常用工具类,包括字符串.日期.集合/数组.IO.计时等. 1 字符串 1.1 StringUtils Maven 依赖信息: <dependency> <gr ...

  5. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,

    Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 日期格式化 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在J ...

  6. 基于jdk8 LocalDate系列API的全新实用时间工具类

    基于jdk8 LocalDate系列API的实用时间工具类, 已经经过多个项目的考验与完善, 包含个人心得体会 欢迎转载,转载请注明网址:https://blog.csdn.net/qq_419102 ...

  7. python彩蛋_隐藏在Python中的15个彩蛋

    在python环境下输入这些命令,就会出现有趣的画面. 比如import this 彩蛋指电影中不仔细寻觅,会被忽略的有趣细节:还有就是影片剧情结束后,在演职员表滚屏时或之后出现的电影片段(通常是一些 ...

  8. python彩蛋_盘点Python的5大彩蛋

    今天我才发现Python原来有5个彩蛋,今天就给大家盘点一下. 1:Hello world Hello world肯定是大家刚学习一门新的程序语言时输出的内容,Python输出Hello world大 ...

  9. android版本隐藏彩蛋养猫,Android 11 新增养猫彩蛋,正式版即将推送

    近日,谷歌正式推送了 Android 11 Beta3 系统,这是 Android 11 第三次测试版,也是最后一版测试固件,结束测试后 Android 11 将正式推送. 此次推送的 Android ...

最新文章

  1. smarty mysql demo_PHP Smarty模版简单使用方法
  2. c++ std::priority_queue优先队列
  3. getrealdays oracle_oracle 日期函数介绍
  4. c/c++程序员的技术栈
  5. surefire 拉起testng单元测试类的源码流程阅读(二)
  6. 关于halcon多区域挑选有关算法的自我理解(tuple_sort_index)
  7. 【ZJOI2019】线段树【线段树上dp】【大讨论】
  8. HCNA配置telnet远程管理
  9. 【JAVA单元测试】单元测试模拟高并发操作
  10. Java进阶: springmvc已经引入jar包仍报错lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
  11. Windows可视化编程C++基础知识
  12. php yml,YAML、YML在线编辑器(格式化校验)
  13. R语言Meta分析【全流程、不确定性分析】方法与Meta机器学习
  14. 【电源专题】BUCK电源效率和输出电压的关系
  15. 阿里云ECS centos8连接可视化界面
  16. 外星人台式机无盘服务器,外星人电脑Aurora R6/Aurora R7无盘无法正常引导解决方案...
  17. 准备考试?python也能帮你划重点,上考场(误)
  18. 逆幂律模型_逆幂律曲线的基本架构永远不会改变
  19. 安卓系统怎么连接服务器数据库,安卓端如何与服务器端数据库连接
  20. python3 使用openpyxl 处理excel表格数据

热门文章

  1. 【剑指Offer,JS版本】二维数组中的查找
  2. 二项分布的期望方差证明
  3. 最大子数列和的问题求解
  4. PyTorch学习:参数初始化
  5. python : itertools 中的 islice : 获取迭代器结果的切片,消耗迭代器
  6. ThinkPHP5.0-多语言切换
  7. 【学习总结】GirlsInAI ML-diary day-7-数据类型转换
  8. 【bzoj1951】【古代猪文】Lucas定理+欧拉定理+孙子定理
  9. WebRTC架构和协议栈-zz
  10. 535 5.7.8 Error: authentication failed: generic failure安装EMOS时SMTP测试报错