如何将当前日期设置为Java中的MySQL日期列?

问题描述:

我在表中有一个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 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