我在表中有一個DATE數據類型mysql列。我想從我的格式的Java代碼設置列的值YYYY-MM-DD如何將當前日期設置爲Java中的MySQL日期列?
我用下面的代碼來測試這些格式..
Calendar c = Calendar.getInstance();
c.setTime(new Date());
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE;
但我得到一些奇怪的輸出,如果我在控制檯中打印出該值。請幫忙。我還能怎麼做到這一點?
我在表中有一個DATE數據類型mysql列。我想從我的格式的Java代碼設置列的值YYYY-MM-DD如何將當前日期設置爲Java中的MySQL日期列?
我用下面的代碼來測試這些格式..
Calendar c = Calendar.getInstance();
c.setTime(new Date());
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE;
但我得到一些奇怪的輸出,如果我在控制檯中打印出該值。請幫忙。我還能怎麼做到這一點?
你所要做的是:
String d = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE)
如果我沒記錯的話,你還必須添加+1到每月返回偏移量(從0開始計數),而不是僅僅一個月值(這是愚蠢的對我來說,但我沒有做設計)。
此外,您可能想檢查SimpleDateFormat及其功能以很好的方式格式化日期。
在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 class的getDate()
方法。
ResultSet res = con.executeQuery("some query with a DATE field");
Date d = res.getDate(index);
您可以用d
的物體,像java.util.Date
對象(如使用在Calendar
對象),因爲它從它延伸工作。
非常感謝!這真的幫助了我。 :) – 2012-11-20 03:20:01