老板,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。核心知识点的内容还不错,以前换工作、面试时,都会从头看一篇,能收获不少,可以以点带面,来进行复习,如果那块不熟悉,可以在找到对应块的资料,好好研究及学习。

目录
相关文章
|
2月前
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
5月前
日期类(jdk8之前)
日期类(jdk8之前)
|
安全 Java API
JDK8新特性之日期时间API
JDK8新特性之日期时间API-案例实操
92 1
JDK8新特性之日期时间API
|
Java API Maven
java计算两个字符串日期的相差天数【jdk8新特性LocalDateTime和Hutool两种方式实现】
java计算两个字符串日期的相差天数【jdk8新特性LocalDateTime和Hutool两种方式实现】
669 0
|
前端开发 Java
SpringBoot/MVC接收JDK8中的日期时间参数
SpringBoot/MVC接收JDK8中的日期时间参数
522 0
|
存储 安全 Java
【java】JDK1.8时间日期库 新特性
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。
1479 0
|
2月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
293 3
|
3月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
57 1
|
3月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
685 4
|
2天前
|
Ubuntu Java
Ubuntu之jdk安装
以下是Ubuntu之jdk安装的详细内容