八、时间类:4 代演进史
Java8 有 Date 类有两个构造方法,其他构造方法以及过时。
Date a=new Date();
Date b=new Date(123);//1970-01-01之后的毫秒
java.lang.Object
└── java.util.Date ← 你老代码里最常见的
└── java.sql.Date ← ⚠️ 继承 util.Date!但是**重写了一堆方法抛异常**
└── java.sql.Time ← 同上兄弟类
└── java.sql.Timestamp ← 同上兄弟类,继承 util.Date + 加了 nanos 纳秒字段
| 纬度 | java.util.Date | java.sql.Date(SQL 列 DATE) | java.sql.Time(SQL 列 TIME) | java.sql.Timestamp(SQL 列 DATETIME/TIMESTAMP) |
|---|---|---|---|---|
| 对应 MySQL 列类型 | DATE(只存年月日) | TIME(只存时分秒) | DATETIME(6)/TIMESTAMP(6) | |
| 推荐替代类 | 直接用 Instant 或 LocalDateTime | 用 java.time.LocalDate 完美替代 | 用 java.time.LocalTime 完美替代 | 用 java.time.LocalDateTime(DATETIME 列)/Instant(TIMESTAMP 列) 完美替代 |
(一)java.util.Date 类 (不推荐)
全是废弃的方法
(二)java.util.Calendar(不推荐)
(三)TimeStamp 类
Java 用来和数据库对接的“日期时间类型”,精确到毫秒
Timestamp=日期 + 时间 + 毫秒
2026-05-07 22:30:00.123
TimeStamp 是 java.util.Date 的子类
