专栏名称: 阿里云开发者
阿里巴巴官方技术号,关于阿里的技术创新均将呈现于此
今天看啥  ›  专栏  ›  阿里云开发者

如何才能在Java中优雅的操纵时间?

阿里云开发者  · 公众号  · 科技公司  · 2024-11-11 08:30

主要观点总结

文章主要介绍了如何在Java中优雅地操纵时间,并提供了相关的概念和工具类。作者认为建议使用Java 8的时间API,因为它在安全性和易用性上都比java.util.Date高。文章还介绍了时间在计算机中的存储和展示方式,以及不同时间API的比较,如java.util、Calendar、TimeZone和java.time.*。同时,文章还提到了日期和时间的格式化,以及时间间隔的计算。最后,给出了一个基于Java.time.*实现的日期工具类的例子,并讨论了时间工具类在数据库映射中的变化。

关键观点总结

关键观点1: Java 8时间API的使用

建议使用Java 8的时间API,它在安全性和易用性上都比java.util.Date高。

关键观点2: 时间的存储和展示

时间在计算机中存储的本质是一个整数,称为Epoch Time(时间戳)。时间戳表示从1970年1月1日零点到现在所经历的秒数。时间戳不易理解,需要转换为易读的时间,并加上时区信息才能精准定位时刻。

关键观点3: 不同时间API的比较

Java中有两套处理日期/时间的API,分别是java.util和java.time.*。java.util在JDK8之前使用,而java.time.*在JDK8中引入,提供了更清晰、更易用的API。

关键观点4: 日期和时间的格式化

Java.time.*提供了多种日期和时间的格式化方法,如DateTimeFormatter,用于将日期和时间格式化为字符串或解析字符串为日期和时间。

关键观点5: 时间间隔的计算

Java.time.*提供了用于计算时间间隔的类,如Duration和Period,用于表示两个时刻之间的时间间隔。

关键观点6: 日期工具类的实现

文章给出了一个基于Java.time.*实现的日期工具类的例子,提供了多种日期和时间的处理方法,如获取当前日期、时间、日期时间,格式化日期为字符串,增加指定天数等。

关键观点7: 数据库映射的变化

在Mybatis中,Java.time.*与数据库映射的支持需要添加相关依赖,以实现LocalDateTimeTypeHandler等类型处理器。


文章预览

阿里妹导读 怎么才能在Java中优雅的操纵时间呢,作者整理了相关的概念和工具类,希望帮助大家在代码开发的过程中对时间的使用更加优雅。 在开发时候,发现有很多需要用到时间的地方,例如记录操作的时间、比较时间判断产品是否有效等。总而言之,时间是我们业务开发必须关注、时刻注意的点。但目前工程的代码中使用了非常多时间的工具类,一会儿用Java.util.Date记录时间,一会用Java.time.LocalDateTime记录时间,怎么才能在Java中优雅的操纵时间呢,我整理了相关的概念和工具类,希望帮助大家在代码开发的过程中对对时间的使用更加优雅。 这里先写一个结论: 建议使用java8的时间API,在安全性和易用性上都远高于java.util.Date。 目前比较流行的封装java API的时间工具类大都基于java.util.Date,建议在开发过程中根据业务需要基于java.time.*的方法封 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览