2010-01-20 55 views
7

HI 我想知道爲什麼在兩個不同的包中有兩個Date類,一個在java.util.Date和一個在java.sql.Date? 有兩個Date類的用法是什麼?爲什麼兩個日期類中的一個在java.util.Date和java.sql.Date中?

+4

Somtimes我想讓程序員的生活更難 – stacker 2010-01-20 19:25:27

+0

然後有JODA ... – 2010-01-20 20:20:12

+0

但你跳過'java.util.Calendar'!具有諷刺意味的是,這些(JDK類)中沒有一個可以實際使用(除非是強制的)。 Joda-Time是唯一完成日期/時間的API。 – 2010-01-20 23:10:49

回答

11

java.util.Date是Java的Date數據類型。

java.sql.Date是SQL日期的JDBC包裝器。

這兩者在內部表現完全不同。

.NET有相同的概念(但更好的命名約定來區分在我看來兩個)與System.DataTimeSystem.Data.SqlTypes.SqlDateTime

+0

+1進行編輯 – 2010-01-21 08:59:50

3

java.sql.Date

瘦包裝圍繞一個毫秒值那允許JDBC將其標識爲SQL DATE值。毫秒值表示從1970年1月1日00:00:00開始經過的毫秒數。

3

java.sql.Datejava.util.Date的子類(擴展名)。
什麼在java.sql.Date改變:

  1. toString()生成不同的字符串表示:yyyy-mm-dd
  2. 靜態valueOf(String)方法以從與上述表示
  3. getter和設定器對時,分,字符串創建日期秒不推薦使用

java.sql.Date類與JDBC一起使用,它打算沒有一個時間部分,即小時,分鐘,秒和毫秒應該是零...但這不是由該類執行

相關問題