java.util.Date和java.sql.Date的比較
java.sql.Date
繼承自java.util.Date
java.sql.Date
對應於 SQL 中的日期,時間部分置零
A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL
DATE
value. A milliseconds value represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT.To conform with the definition of SQL
DATE
, the millisecond values wrapped by ajava.sql.Date
instance must be ‘normalized’ by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.
- demo1
java.util.Date date1 = new java.util.Date(System.currentTimeMillis());
java.sql.Date date2 = new java.sql.Date(System.currentTimeMillis());
System.out.println(date1);
System.out.println(date2);
Mon Nov 25 20:11:11 CST 2019
2019-11-25
- demo2
long time = System.currentTimeMillis();
java.sql.Date sqlDate = new java.sql.Date(time);
System.out.println(time); // 1574684386052
System.out.println(sqlDate.getTime()); // 1574684386052
- java.sql.Date轉換爲java.util.Date
// java.sql.Date轉爲java.util.Date
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
java.util.Date utilDate = new java.util.Date (sqlDate.getTime());
System.out.println(sqlDate); // 2019-11-25
System.out.println(utilDate); // Mon Nov 25 20:29:42 CST 2019
// java.util.Date轉爲java.sql.Date
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(utilDate); // Mon Nov 25 20:31:26 CST 2019
System.out.println(sqlDate); // 2019-11-25
注:SQL中一般用 java.sql.Timestamp