LocalDate.now() 返回不带时分秒和时区的纯日期对象;默认用系统时区,也可传 ZoneId 指定时区;适用于日志、报表等场景,线程安全,格式化需 DateTimeFormatter。

Java 中用 LocalDate.now() 就能直接获取当前年月日,不带时分秒和时区信息,返回的是纯日期对象。
基本用法:直接调用 now() 方法
LocalDate 是 Java 8 引入的不可变日期类,属于 java.time 包。默认使用系统默认时区的本地日期:
LocalDate today = LocalDate.now();- 例如运行在 2024 年 6 月 15 日,结果就是
2024-06-15
指定时区获取当前日期
如果需要按特定时区(比如东八区、UTC)获取当天日期,可传入 ZoneId:
LocalDate beijingDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));LocalDate utcDate = LocalDate.now(ZoneId.of("UTC"));- 注意:即使同一时刻,不同时区可能对应不同日期(如 UTC+13 和 UTC-11)
常见用途与注意事项
这个方法常用于记录日志日期、生成报表周期、计算年龄等场景:
立即学习“Java免费学习笔记(深入)”;
- 它只包含年月日,不能直接用于时间计算(如加减小时),需配合
LocalDateTime或Instant - 线程安全,可放心在多线程环境中使用
- 若需格式化输出,用
DateTimeFormatter,例如:today.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))


















