Java 8 中 常用的 LocalDateTime 操作
引言
Java 开发中,我们常常用到各种格式的时间转换,收集一下
获取当天初始时间
/**
* 获取传入时间的凌晨 00:00:00
*/
public static LocalDateTime getDayStart(LocalDateTime paramTime) {
if (null == paramTime) {
return LocalDateTime.MIN;
} else {
return LocalDateTime.of(paramTime.toLocalDate(), LocalTime.MIN);
}
}
获取当天结束时间
/**
* 获取传入时间当天最大的时间 23:59:59
*/
public static LocalDateTime getDayEnd(LocalDateTime paramTime) {
if (null == paramTime) {
return LocalDateTime.MAX;
} else {
return LocalDateTime.of(paramTime.toLocalDate(), LocalTime.MAX);
}
}
获取时间差
有的时候,根据业务需求,我们会获取例如上个月的时间,或者推迟几分钟、几小时的时间等等,在 java 8之后,官方编写了现成的时间工具可以使用。下面,让我们一起来体验一下吧。
public static void main(String[] args) {
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间: " + fmt.format(LocalDateTime.now()));
LocalDateTime time = LocalDateTime.now().minusMinutes(1L);
System.out.println("获取上一分钟: " + fmt.format(time));
LocalDateTime nextMin = LocalDateTime.now().plusMinutes(1L);
System.out.println("获取下一分钟: " + fmt.format(nextMin));
}
输出:
当前时间: 2022-08-01 09:11:16 获取上一分钟: 2022-08-01 09:10:16 获取下一分钟: 2022-08-01 09:12:16
仔细看上述代码,其中最重要的就是minusMinutes,plusMinutes,字面英文大意不难看出这是什么意思,同理可得,我们去看下工具类中,还有哪些方法。

