工作中必须使用的 18 个 Java8 日期处理技术! 收藏起来~

 2024-02-27 01:04:11  阅读 0

:当地时间,不包括日期

:组合日期和时间,但不包括时差和时区信息。

:最完整的日期时间,包括时区和相对于 UTC 或格林威治的偏移量。

新的API还引入了 和 类,可以更轻松地解决时区问题。解析和格式化时间

课程也被完全重新设计。

实战

在教程中,我们将通过一些简单的示例来学习如何使用新的API,因为只有在实际项目中使用它才是学习新知识和新技术的最快方法。

1.获取当前日期

在 Java 8 中用于表示今天的日期。 与 java.util.Date 不同,它仅包含日期,不包含时间。 当您只需要表示日期时使用此类。

50_1.png

上面的代码创建了今天的日期,没有时间信息。 打印日期的格式非常友好,不像Date类打印出一堆无格式信息。

2.获取年月日信息

提供获取年月日的快捷方法,其实例还包含许多其他日期属性。 通过调用这些方法,您可以轻松获取所需的日期信息,而无需依赖java.util。 和以前一样上课。

50_2.png3。 处理特定日期

在第一个示例中,我们通过静态工厂方法 now() 非常轻松地创建了今天的日期。

我们还可以调用另一个有用的工厂方法来创建任何日期。 该方法需要传入年、月、日作为参数,并返回对应的实例。 这种方法的好处是不会犯旧API的设计错误,比如从1900年开始的年份,从零开始的月份等等。所见即所得的日期,如示例下面显示的是 1 月 21 日,这很简单。

50_3.png4。 判断两个日期是否相等

现实生活中的一种时间处理是确定两个日期是否相等。 在项目开发过程中,总会遇到这样的问题。

下面的例子将帮助你用Java 8的方式来解决它,重载equal方法。

注意,如果比较的日期是字符类型,则需要将其解析为日期对象后再进行判断。

请看下面的例子:

50_4.png5。 检查生日等重复事件

Java中的另一种日期和时间处理是检查周期性事件,例如生日、周年纪念日、法定节假日(国庆节和春节),或者每月固定时间向客户发送电子邮件。

如何在Java中查看这些假期或其他周期性事件? 答案是上课。 该类结合了月份和日期并删除了年份,这意味着您可以使用它来确定事件是否每年都会发生。

还有一个类与这个类类似。 这些类也是不可变且线程安全的值类型。 下面我们通过以下方式检查周期性事件:

时间戳对应java jpa_java中时间戳是什么意思_java时间戳时区

50_5.png6。 获取当前时间

与日期检索示例非常相似,时间检索使用一个类,一个只有时间但没有日期的近亲。 您可以调用静态工厂方法 now() 来获取当前时间。 默认格式是 .

50_6.png7。 在现有时间上添加小时数

Java 8提供了更好的()方法来替代add()并且兼容。 请注意,这些方法返回一个全新的实例。 由于其不可变性,变量必须在返回后赋值。

50_7.png8.如何计算一周后的日期

与上一个示例计算两小时后的时间类似,本示例将计算一周后的日期。 日期不包含时间信息。 它的 plus() 方法用于添加天、周和月。 该类声明了这些时间单位。 由于也是不可变类型,所以返回后必须使用变量来赋值。

您可以以同样的方式添加 1 个月、1 年、1 小时、1 分钟甚至一个世纪,有关更多选项,请查看 Java 8 API 中的类。

50_8.png9。 计算一年前或一年后的日期

接下来,在上面的示例中,我们使用该方法添加天数、周数或月数。 在这个例子中,我们使用该方法来计算一年前的日期。

50_9.png10.使用Java 8的Clock类

Java 8添加了一个Clock类来获取当前时区的当前时间戳或日期时间信息。 以前使用 .() 和 .() 的地方都可以用 Clock 替换。

50_10.png11。 确定一个日期是早于还是晚于另一个日期

该类有两个方法,用于比较日期。 调用该方法时,如果给定日期小于当前日期,则返回 true。

50_11.png12。 处理时区

Java 8不仅分隔日期和时间,还分隔时区。 现在有一系列单独的类,例如处理特定时区的类,以及表示时区时间的类。

50_12.png13.如何反映固定日期

例如: 表示固定日期,例如信用卡到期日期。 与检查重复事件的示例类似,是另一个组合类,用于表示信用卡到期日、FD 到期日、期货期权到期日等。

您还可以使用此类来获取当月的天数。 实例方法可以返回当月的天数,这在判断二月是28天还是29天时非常有用。

50_13.png14。 检查闰年

该类有一个非常实用的方法来确定实例是否是闰年。 如果您仍然想重新发明轮子,这里有一个代码示例,一个用纯 Java 逻辑编写的程序,用于确定闰年。

50_14.png15。 计算两个日期之间的天数和月数

常见的日期运算是计算两个日期之间的天数、周数或月数。 在 Java 8 中,您可以使用 java.time。 类进行计算。 在下面的示例中,我们计算今天和未来一天之间的月数。

下面的示例:现在是 1 月,现在是 5 月,中间有 3 个月。

50_15.png16。 日期和时间,包括时差信息

该类用于表示时区。 例如,印度与 GMT 或 UTC 标准时区的时差为 +05:30。 可以通过.of()静态方法获取对应的时区。 一旦有了时间差,您就可以通过传入总和来创建一个对象。

50_16.png17。 获取当前时间戳

该类有一个静态工厂方法 now() 返回当前时间戳,如下所示:

50_17.png18。 使用预定义的格式化工具来解析或格式化日期

Java 8 引入了一种新的日期和时间格式化工具,该工具是线程安全且易于使用的。 它附带了一些常用的内置格式化工具。

以下示例使用格式化工具格式化 10, 2018。

50_18.png终于

最后附上所有代码

总结

Java 8 日期时间 API 的亮点

1.提供javax.time。 获取时区。

2. 提供和上课。

3. Java 8中的所有日期和时间API都是不可变的和线程安全的,而API中现有的Date和java.util.Date不是线程安全的。

4、主要包是java.time,其中包含一些表示日期、时间和时间间隔的类。 有两个子包java.time。 用于格式化和java.time。 用于较低级别的操作。

5. 时区代表地球上某个地区常用的标准时间。 每个时区都有一个代号,其格式通常由地区/城市(亚洲/东京)加上与格林威治或 UTC 的时差组成。 例如:东京的时差是+09:00。

标签: 日期 例子 格式化

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码