2024 / 10 / 17
在 MyBatis Plus 对象中,java.util.Date
和 java.sql.Date
是两种不同的日期类,它们之间的区别主要体现在用途和精度上:
java.util.Date
用途:java.util.Date
是 Java 中常用的日期和时间类,用于表示日期和时间的具体点。它的范围包含了日期和时间信息(年、月、日、时、分、秒和毫秒)。
精度:支持到毫秒的精度。
广泛使用:通常用于各种应用程序中的通用日期和时间处理。
示例:
import java.util.Date; Date date = new Date(); // 包含日期和时间的完整信息
java.sql.Date
用途:java.sql.Date
主要用于与 SQL 数据库进行交互,尤其是处理数据库中的日期型字段。它只保留日期部分(年、月、日),不包含时间信息。
精度:支持到天的精度(即只保留年、月、日,不保存时、分、秒和毫秒)。
专门用于数据库:通常在 JDBC 中用于存储或提取 SQL 数据库中的日期类型字段。
示例:
import java.sql.Date; Date sqlDate = new Date(System.currentTimeMillis()); // 仅包含日期信息,不含时间
特性 |
|
|
用途 | 用于表示日期和时间 | 用于数据库中的日期字段,通常只保存日期部分 |
精度 | 年、月、日、时、分、秒、毫秒 | 仅年、月、日 |
使用场景 | 通用日期和时间处理 | 数据库操作,例如 JDBC 中与 SQL DATE 字段交互 |
时间信息 | 包含完整的时间信息 | 不包含时间信息,只包含日期 |
如果你需要在业务逻辑中处理完整的日期和时间,或者在代码中需要包含时间信息,推荐使用 java.util.Date
。
如果仅仅是在数据库中操作日期(没有时间的需求),并且希望与数据库的 DATE
类型字段交互时使用,推荐使用 java.sql.Date
。
通常在开发中,如果使用 MyBatis Plus 来进行数据库映射,java.util.Date
可以自动映射数据库中的 DATETIME
或 TIMESTAMP
类型,而 java.sql.Date
更适合映射 DATE
类型字段。