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,字面英文大意不难看出这是什么意思,同理可得,我们去看下工具类中,还有哪些方法。