例如,获取当天的初始时间和结束时间,或者计算时间差。有时,根据业务需求,我们可能需要获取上个月的时间,或者推迟几分钟、几小时的时间等。在Java 8之后,官方提供了现成的时间工具来方便我们使用。接下来,让我们一起来探索一下这些工具吧。输出:在上面的代码中,最关键的是minusMinutes和plusMinutes这...
Java 8 中 常用的 LocalDateTime 操作
Java开发中,我们经常需要进行各种时间格式的转换,以下是一些常见操作。
例如,获取当天的初始时间和结束时间,或者计算时间差。有时,根据业务需求,我们可能需要获取上个月的时间,或者推迟几分钟、几小时的时间等。在Java 8之后,官方提供了现成的时间工具来方便我们使用。接下来,让我们一起来探索一下这些工具吧。
输出:
在上面的代码中,最关键的是minusMinutes和plusMinutes这两个方法。从字面上看,它们的意思不难理解。同样地,我们可以在工具类中查看其他的方法。
在plusMinutes方法上右击,选择“转到”,然后选择“实现”、“声明”或“用例”,就可以进入到LocalDateTime.java类中。在Mac上,按快捷键command + 7;在Windows上,按快捷键Alt + 7,会显示类的主结构。
从下图中,我们可以看到官方提供了许多现有的方法,基本满足了我们日常的使用需求。
常用方法简介:
上面的方法大多容易理解,其中minusNanos方法可以减去指定的纳秒数,我们可以通过以下实践来了解它:
输出:
1毫秒等于100万纳秒。
输出:
plusNanos和其他相关方法就不演示了,相信大家能够举一反三。
获取自定义时间:
现在业务需要我们获取当前小时开始的时间,例如2022-10-01 10:00:00。
输出:
主要的代码是:
tempTime = tempTime.withMinute(0).withSecond(0).withNano(0);
注意:tempTime操作完成后需要返回值接收,否则不会改变原有的值。
可以看到,这里使用了三个with方法。
有人可能会尝试给分钟设置61...,我们来试一下,会报错如下:
比较时间前与后:
现在业务需要我们判断传入的参数不能大于当前时间,我们可以通过以下方法和示例来解决这个问题:
输出:2024-08-10