适合 Java 初学者、准备面试或需要系统梳理时间 API 的同学,内容较详细,建议收藏反复看。
Java 时间类(上):JDK7 及以前时间类 Date、SimpleDateFormat、Calendar 最全总结 🕒
📝 文章摘要
- 阅读时长:10 分钟
- 适合人群:
- Java 零基础小白 → 重点看:概念、构造方法、代码示例
- 正在学习 Java 常用类的同学 → 重点看:格式转换、日历字段、易错点
- 面试复习 → 重点看:月份从 0 开始、星期规则、时间毫秒值
- 本文内容:系统讲解 JDK7 及以前传统时间 API,包括时间单位、Date、SimpleDateFormat、Calendar 四大核心知识点,附带完整代码 + 细节说明。
一、时间相关基础知识点 ⏱
在学习 Java 时间类之前,我们先搞懂时间标准和单位换算,这是所有时间类的底层基础。
1. 时间标准
- GMT(Greenwich Mean Time):格林尼治时间,老式标准时间
- UTC(Coordinated Universal Time):世界协调时间,目前使用原子钟计时,是现代标准
2. 时间单位与换算
单位从小到大:秒 (s) → 毫秒 (ms) → 微秒 (μs) → 纳秒 (ns) → 皮秒 (ps) → 飞秒 (fs)
相邻单位进率:1000
公式:
1s = 10^3 ms = 10^6 μs = 10^9 ns = 10^12 ps = 10^15 fs
Java 中所有时间类,底层存储都是毫秒值: 从 1970 年 1 月 1 日 00:00:00(UTC)到当前时间的总毫秒数。
二、Date 时间类 📅
1. 概述
java.util.Date,必须导包- 表示一个瞬间,精确到毫秒
- 可以看做是 Java 写好的时间 JavaBean
2. 构造方法
| 方法名 | 说明 |
|---|---|


