問:java.sql.Date 和 java.util.Date 有什么區(qū)別蒜危?
答:這兩個類的區(qū)別是 java.sql.Date 是針對 SQL 語句使用的,它只包含日期而沒有時間部分,一般在讀寫數(shù)據(jù)庫時用撮奏。java.util.Date 是在除了 SQL 語句外的所有情況下使用的,一般是日常日期字段。java.util.Date 是 java.sql.Date 的父類钠四。唯一的相同點(diǎn)就是都有 getTime 方法返回毫秒數(shù)。代碼解釋所示:
public class DateShow {
public static void main(String[] args) {
java.util.Date nowUtil = new java.util.Date();
java.sql.Date nowSql = new java.sql.Date(System.currentTimeMillis());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(nowUtil));
System.out.println(format.format(nowSql));
System.out.println(nowUtil);
System.out.println(nowSql);
}
}
運(yùn)行結(jié)果如下:
2018-06-08 17:33:06
2018-06-08 17:33:06
Fri Jun 08 17:33:06 CST 2018
2018-06-08
之所以直接打印 Date 對象表現(xiàn)的值不一樣就是上面解釋的部分跪楞,是指是調(diào)用了各自 Date 的 toString() 方法缀去,兩個 Date 對象分別有自己的 toString() 重寫實(shí)現(xiàn),感興趣的可以打開源碼對比一下就明白了甸祭。