Java 8 新日期时间 API 核心用法详解
Java 8 引入了 java.time 包,彻底重构了日期和时间处理逻辑。相比旧的 Date 和 Calendar,新 API 修正了常量设计的不合理之处,例如月份范围统一为 112,周范围 17。更重要的是,新 API 中的类型几乎全部是不可变的(类似 String),线程安全且不易被意外修改。
核心类与创建方式
最常用的三个类是 LocalDate、LocalTime 和 LocalDateTime。它们分别代表日期、时间和本地日期时间。
我们可以通过系统时钟直接获取当前时间,也可以通过静态工厂方法 of() 精确构造特定时刻。
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class Demo {
public static void main(String[] args) {
// 获取当前时间
LocalDateTime dt = LocalDateTime.now();
LocalDate d = LocalDate.now();
LocalTime t = LocalTime.now();
System.out.println("dt = " + dt);
System.out.println("d = " + d);
System.out.println("t = " + t);
// 构造特定时间
LocalDate d2 = LocalDate.of(2019, 11, 30);
LocalTime t2 = LocalTime.of(15, 16, 17);
LocalDateTime LocalDateTime.of(, , , , , );
LocalDateTime.of(d2, t2);
System.out.println( + dt2);
System.out.println( + dt3);
}
}

