網頁

2018/7/21

Java java.sql.Time 與 java.sql.Timestamp 的差別

Java中用來紀錄時間資訊的類別為java.sql.Time,其與java.sql.Timestamp的差異如下。

相同的是兩者皆繼承java.util.Date

java.sql.Time僅記錄時間資訊,也就是時,分,秒。

java.sql.Timestamp記錄了日期及時間資訊,也就是年,月,日,時,分,秒,毫秒

請見下面範例。

Time time1 = Time.valueOf("13:00:00");
System.out.println(time1.toString()); // 13:00:00

Timestamp timestamp1 = new Timestamp(time1.getTime());
System.out.println(timestamp1.toString()); // 1970-01-01 13:00:00.0


Timestamp timestamp2 = new Timestamp(System.currentTimeMillis()); // 取得系統時間
System.out.println(timestamp2.toString()); // 2018-07-22 12:04:18.694

Time time2 = new Time(timestamp2.getTime());
System.out.println(time2.toString()); // 12:04:18


Timestamp timestamp3 = new Timestamp(time2.getTime());
System.out.println(timestamp3.toString()); // 2018-07-22 12:04:18.694

從上面範例可以看到java.sql.Time仍是有保留日期訊息的,只是被隱藏起來而已。

java.sql.Time都沒設定日期資訊,則預設為1970-01-01

沒有留言:

張貼留言