老板,JDK8的日期、时间函数我不熟悉?

简介: 介绍JDK 8中的新日期工具类,及整理成PDF文档

在上一篇文章《Java开发篇 - 还在为计算2个日期间隔的天数纠结?是时候换掉java.util.Date》中,介绍了JDK的日期时间函数(java.util.Date, java.util.Calendar),在java的技术发展中充当了重要作用,随然日期时间的处理上存在不好用,容易混乱不好用,但也陪伴了java的起步及成长。

在随后的发展中,也出现了救民于水火的 joda-time,第一次使用时,确实眼前一亮,简单好用,也在很多项目中使用了,但注意到joda-time的官网已更新了信息,说不在积极维护了。

Note that Joda-Time is considered to be a largely “finished” project. No major enhancements are planned. If using Java SE 8, please migrate to java.time (JSR-310).
Joda-time is no longer in active development except to keep timezone data up to date. From Java SE 8 onwards, users are asked to migrate to java.time (JSR-310) - a core part of the JDK which replaces this project. For Android users, java.time is added in API 26+. Projects needing to support lower API levels can use the ThreeTenABP library.

上面的原文就是 Joda 已经不再积极进行开发了,只是进行一些时区数据的维护了。如果正在使用JDK8,建议迁到java.time去,也就是java.time基本上实现了joda-time的功能。感觉有点遗憾的,可能很多人都已经习惯 DateTime 来 new 一下然后进行一堆计算。

上篇文章已经对JDK8中的时间/日期做了介绍,确实提供了更加丰富及简单的函数。当然,对于新旧版本日期函数的转换来说,确实麻烦一点,但也不能否定新版的优点。

比如从Date转换成LocalDateTime,如果能一个LocalDateTime.from() 可能更好。

LocalDateTime localDateTime = new Date().toInstant().atZone(
        ZoneId.systemDefault()).toLocalDateTime();

从LocalDateTime 转换成Date

Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant())

回归正题,经过我的实践及测试,项目都基本上将Date/Calendar转换到了java.time的相关函数下,而且这些新的工具类都提供了线程安全,不像SimpleDateFormat是线程不安全,还被坑过。

为了造福其他的开发小伙伴,我将java.time相关的类及函数说明,例子整理到了一个PDF文档,方便更多的小伙伴下载下来就能查阅,权当一个小工具文档,整理完大概有50多页的样子。需要的可以关注我的微信公众号【技术老男孩】,在聊天区回复【javatime】即可获取,另外回复还可以获取到一本【Java核心知识点】的PDF文档,里面的内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。

在部分内容如下图所示:

1) java.time的文档:

image.png

image.png

image.png

image.png

2) Java核心知识点的文档
image.png

image.png

image.png

image.png

image.png

限于篇幅的原因,具体的内容可以查看PDF。核心知识点的内容还不错,以前换工作、面试时,都会从头看一篇,能收获不少,可以以点带面,来进行复习,如果那块不熟悉,可以在找到对应块的资料,好好研究及学习。

目录
相关文章
|
安全 Java API
JDK8新特性之日期时间API
JDK8新特性之日期时间API-案例实操
305 1
JDK8新特性之日期时间API
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
Java API Maven
java计算两个字符串日期的相差天数【jdk8新特性LocalDateTime和Hutool两种方式实现】
java计算两个字符串日期的相差天数【jdk8新特性LocalDateTime和Hutool两种方式实现】
1279 0
|
前端开发 Java
SpringBoot/MVC接收JDK8中的日期时间参数
SpringBoot/MVC接收JDK8中的日期时间参数
723 0
|
存储 安全 Java
【java】JDK1.8时间日期库 新特性
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。
1728 0
|
12月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
738 21
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
530 11
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
612 41
|
Oracle Java 关系型数据库
Tomcat和JDK的详细安装、下载和环境配置指南
以上就是JDK和Tomcat的下载、安装和环境配置的详细步骤。希望这个指南能帮助你顺利完成设置。
941 32