2011-05-04 249 views
2

我有一個java日期與sql的問題。我有y,m,day-d的值我創建了新的Date(y,m,d),但它說這個構造函數已被棄用,它返回錯誤的日期, 我該如何正確設置日期, y,m,d?與日期的java問題

回答

5

根據API,

從JDK版本1.1開始,替換爲 Calenda r.set(年份+ 1900,月份,日期) 或GregorianCalendar(年份+ 1900, 月份,日期)。

+0

我可以更改年份的值嗎? – Vahan 2011-05-04 14:35:51

+0

@Vahan:_Calendar.set(Calendar.YEAR,year + 1900)_這是你的意思嗎?我有點困惑... – mre 2011-05-04 14:37:47

1

您應該使用public Date(long date)其中date毫秒數自1970年1月1日00:00:00 GMT

你的情況,你也可以使用:

Date mydate = Date.valueOf("2011-05-04"); // yyyy-mm-dd 
+0

我怎樣才能長日期,有年月日? – Vahan 2011-05-04 14:27:45

1

這裏是你如何在兩者之間轉換:

new java.util.Date(sqlDate.getTime()); 
1
Calendar c = Calendar.getInstance(); 
c.set(year, month, date); 

Date d = c.getTime(); 
+0

在這種情況下不能從java.util.date轉換到sql.date – Vahan 2011-05-04 14:33:22

1

使用日曆類:

Calendar cal = Calendar.getInstance(); 
    cal.set(year, month, date); 
    java.sql.Date date = new java.sql.Date(cal.getTimeInMillis()); 
1

使用日曆。

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_MONTH, d); 
c.set(Calendar.MONTH, m); 
c.set(Calendar.YEAR, y); 

然後,如果你有使用日期,那麼你可以做以下 -

Date d = c.getTime(); 
+0

在這種情況下不能從java.util.date轉換到sql.date – Vahan 2011-05-04 14:34:03