Java 8 中 常用的 LocalDateTime 操作

作者: adm 分类: java 发布时间: 2022-10-17

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!