上一篇介紹了Calendar類別,如果想取得時間也可以使用java.util.Date類別。除了java.util.Date類別還有另外一個很像的java.sql.Date類別,下面也會一併介紹。
在java 1.0.2版中java.util.Date有數種功能,但從java 1.1開始,其中大部分的方法都被淘汰了,所以這個類別剩下的唯一功能就是用來表示某個時間點
java.sql.Date是java.util.Date的子類別,精確到可以得知毫秒,讓JDBC將毫秒值轉換成SQLDATE的值。毫秒值表示自1970年1月1日00:00:00 GMT到現在的毫秒數。為了和SQLDATE的定義一致,由java.sql.Date包装的毫秒值必須通過將時間、分鐘、秒和毫秒設置成跟實例相關的特定時區中的零来規範化。簡單來說,java.sql.Date就是跟數據庫Date相對應的一個類型,而java.util.Date就只是純java的Date。
//java.util.Date(今天)(現在)(如:Wed Oct 05 22:46:06 CST 2022)
java.util.Date now = new java.util.Date();
System.out.println("java.util.Date() = "+ now);
//java.sql.Date(今天)(如:2022-10-05)
long long1 = now.getTime(); //也可以用long long1 = System.currentTimeMillis();
java.sql.Date date1 = new java.sql.Date(long1);
System.out.println("java.sql.Date() = "+ date1);
//java.sql.Date(30天後)(如:2022-11-04)
long long2 = now.getTime() + 30*24*60*60*1000L;
java.sql.Date date2 = new java.sql.Date(long2);
System.out.println("java.sql.Date() = "+ date2);