LocalDateTime之adjustInto的用法及使用场景
对于LocalDateTime的方法在工作中已经用到了很多常见且好用的方法。例如LocalDateTime.now(),afterDateTime.isAfter(localDateTime)等。今天查看源码还有一个adjustInto(Temporal temporal)是之前不曾用到,就研究了一下。
使用方法
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.Temporal;
public class LocalDateTimeTest {
public static void main(String[] args) {
LocalTime local = LocalTime.parse("23:59:59");
LocalDateTime passTemporal = LocalDateTime.now().plusDays(1L);
System.out.println("passTemporal : " + passTemporal);
Temporal returnTemporal = local.adjustInto(passTemporal);
System.out.println("adjustInto : " + returnTemporal);
}
}
先执行后再说明此方法的作用和使用场景:
passTemporal : 2020-09-24T16:53:41.044
adjustInto : 2020-09-24T23:59:59
local 变量是需要调整的值。
passTemporal 是要调整的对象。
源码注释的描述是:
Adjusts the specified temporal object to have the same time as this object.
调整指定的时间对象,使其与此对象具有相同的时间。
刚看的时候一脸蒙蔽,不知道说的是个啥,这个时候就要动手自己跑一下,光看是不知道返回结果的。当然也不会真正明白这个方法的含义,所以动起来才能掌握更多。
结合返回值我的理解是:
把指定的值赋值给传入的对象,使其拥有相同的时间。
然后再看上面的源码注释就豁然开朗了。
使用场景
很多需求都会用到过期时间的场景,指定某天后的当天晚上23:59:59结束某某活动,就可以使用到这个方法。