java.time体系核心为五类并列主干:LocalDate(仅日期)、LocalTime(仅时间)、LocalDateTime(日期+时间,无时区)、ZonedDateTime(带时区完整时刻)、Instant(UTC时间戳);辅以独立“时区与格式化”分支和底部演进对照线,清晰体现API演进与关键差异。

直接按知识逻辑分层画,重点突出 java.time 体系,弱化已淘汰的 Date 和 Calendar。不需要面面俱到,抓住主干、体现演进、标注关键差异,一张图就能理清脉络。
核心模块分五类,每类一个主分支
这是 java.time 的“五件套”,必须作为思维导图最顶层的五个并列节点:
- LocalDate:仅日期(年月日),无时区无时间,适合生日、合同生效日等
- LocalTime:仅时间(时分秒纳秒),无日期无时区,适合营业开始时间等
- LocalDateTime:日期 + 时间组合,仍无时区,适合本地系统日志时间戳
-
ZonedDateTime:带时区的完整时刻,含
ZoneId,用于跨时区业务(如航班、国际订单) - Instant:基于 UTC 的时间戳(从 1970-01-01T00:00:00Z 开始的纳秒数),是系统级时间基准,适合记录、计算、存储
每个类下挂关键操作,用动词短语表达行为
避免堆砌方法名,聚焦“能做什么”。例如在 LocalDate 分支下展开:
- 获取今天:
LocalDate.now() - 构造指定日期:
LocalDate.of(2026, 10, 12)或parse("2026-10-12") - 加减运算:
plusDays(1)、minusMonths(3)(注意:返回新对象) - 比较与计算:
isBefore()、until(end, ChronoUnit.DAYS) - 格式化:
format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))
单列“时区与格式化”独立分支
这是容易混淆又高频使用的部分,单独成支更清晰:
-
ZoneId:如
ZoneId.systemDefault()、ZoneId.of("Asia/Shanghai") -
ZonedDateTime 转换:
withZoneSameInstant()(同一时刻不同时区)、withZoneSameLocal()(同本地时间不同时区) -
DateTimeFormatter:内置常量(
BASIC_ISO_DATE、ISO_LOCAL_DATE_TIME)+ 自定义模式("yyyy-MM-dd HH:mm:ss") - 对比提醒:
SimpleDateFormat是线程不安全的旧工具,DateTimeFormatter是不可变、线程安全的替代品
底部加一条“演进对照线”,一目了然
用横向箭头或双色标签形式,在图底部简明标注三套 API 的定位:
- java.util.Date / Calendar:JDK1.0–7,设计缺陷多(如月份从0开始)、可变、非线程安全 → 只读老代码时接触
- SimpleDateFormat:格式化专用但线程不安全 → 禁止在多线程中复用实例
- java.time.*:JDK8+ 标准,不可变、线程安全、语义清晰、支持 ISO-8601 → 所有新项目唯一推荐
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











