2010-03-07 63 views
2

我在表中有一個DATE數據類型mysql列。我想從我的格式的Java代碼設置列的值YYYY-MM-DD如何將當前日期設置爲Java中的MySQL日期列?

我用下面的代碼來測試這些格式..

Calendar c = Calendar.getInstance(); 
c.setTime(new Date()); 
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE; 

但我得到一些奇怪的輸出,如果我在控制檯中打印出該值。請幫忙。我還能怎麼做到這一點?

回答

2

你所要做的是:

String d = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE) 

如果我沒記錯的話,你還必須添加+1到每月返回偏移量(從0開始計數),而不是僅僅一個月值(這是愚蠢的對我來說,但我沒有做設計)。

此外,您可能想檢查SimpleDateFormat及其功能以很好的方式格式化日期。

3

在JDBC中,您可以使用setDate()方法在準備好的語句中設置DATE值,請參閱the API of PreparedStatement。這將該值轉換爲數據庫中的DATE類型。

PreparedStatement prep = con.prepareStatement("some query with a DATE field"); 
Date d = new Date(System.currentTimeMillis()); 
// just an example (its the java.sql.Date class, not java.util.Date) 
prep.setDate(index, d); 
// ... 

爲了得到這個java.sql.Date對象回來的日期字段的值用ResultSet classgetDate()方法。

ResultSet res = con.executeQuery("some query with a DATE field"); 
Date d = res.getDate(index); 

您可以用d的物體,像java.util.Date對象(如使用在Calendar對象),因爲它從它延伸工作。

+0

非常感謝!這真的幫助了我。 :) – 2012-11-20 03:20:01

相關問題