Date/Time 入门

使用不可变、清晰的日期/时间类型替代 Date 和 Calendar。

✕ Pre-Java 8
// Mutable, confusing, zero-indexed months
Calendar cal = Calendar.getInstance();
cal.set(2025, 0, 15); // January = 0!
Date date = cal.getTime();
// not thread-safe
✓ Java 8+
LocalDate date = LocalDate.of(
    2025, Month.JANUARY, 15);
LocalTime time = LocalTime.of(14, 30);
Instant now = Instant.now();
// immutable, thread-safe
发现此代码有问题? 告诉我们。
🔒

不可变

日期/时间值不能被意外修改。

📖

语义清晰

LocalDate vs ZonedDateTime vs Instant——每种类型都有明确用途。

🌐

时区安全

时区处理是显式的,而非隐藏的。

旧方式
Date + Calendar
现代方式
java.time.*
自 JDK
8
难度
入门
java.time API 基础
可用

自 JDK 8 起广泛可用(2014 年 3 月)

java.time 提供 LocalDate、LocalTime、LocalDateTime、Instant、ZonedDateTime 等。它们是不可变的、线程安全的,并且设计清晰——与可变且混乱的 Date/Calendar 不同。

分享 𝕏 🦋 in