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

在上一篇文章《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的文档:

 

 

2) Java核心知识点的文档

 

 

 

 

 

限于篇幅,欢迎各个小伙伴来下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值