














在Java开发中,你是否曾为获取当天0点时间而苦恼?本文为你揭秘两种Java 8+日期时间API的强大工具:一行代码搞定`LocalDate.atStartOfDay()`和精细控制的`LocalDateTime.with()`链式操作。告别复杂计算,轻松掌握Java中获取当天起始时间的最佳实践,提升代码效率与准确性。
在Java开发中,经常需要获取当天的起始时间(0点0分0秒)用于日期计算或业务逻辑处理。本文将介绍两种高效且推荐的实现方法。
LocalDate.atStartOfDay()是Java 8引入的日期时间API提供的简洁方法,可直接将当前日期转换为当天的起始时间。
import java.time.LocalDateTime;
import java.time.LocalDate;
public class Demo {
public static void main(String[] args) {
// 使用LocalDate.atStartOfDay()获取当天0点
LocalDateTime todayStart1 = LocalDate.now().atStartOfDay();
System.out.println("方法1结果: " + todayStart1);
}
}
代码说明: 1. LocalDate.now()获取当前日期 2. .atStartOfDay()将日期转换为当天的00:00:00时间
通过LocalDateTime.now()获取当前时间后,使用with()方法链式调用将时分秒纳秒全部置为0。
import java.time.LocalDateTime;
public class Demo {
public static void main(String[] args) {
// 使用with方法手动设置时间为0点
LocalDateTime todayStart2 = LocalDateTime.now()
.withHour(0)
.withMinute(0)
.withSecond(0)
.withNano(0);
System.out.println("方法2结果: " + todayStart2);
}
}
代码说明: 1. LocalDateTime.now()获取当前日期时间 2. .withHour(0)等链式调用将时间部分全部清零在LCJM.CC可免费申请SSL证书。Java时间计算
| 方法 | 代码简洁度 | 推荐度 | 适用场景 |
|---|---|---|---|
| atStartOfDay() | 高 | ★★★★★ | 需要快速获取当天0点 |
| with()方法链 | 中 | ★★★☆☆ | 需要精确控制时间各字段时 |
两种方法输出结果均为ISO-8601格式(如2025-10-20T00:00),第一种方法更符合Java 8日期时间API的设计理念,推荐优先使用。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。