util.date给sql.date提供错误的日期

时间:2012-02-12 16:19:49

标签: java sql

String d = request.getParameter("date");
SimpleDateFormat dateFormat = new SimpleDateFormat("mm-dd-yyyy"); 
java.util.Date utilDate = dateFormat.parse(d);
java.sql.Date date = new java.sql.Date(utilDate.getTime());

上面的代码是从表单中获取日期并将其转换为sql.date格式以在预准备语句中使用,但是生成的日期是错误的,03-14-2012正在转换为2012-01- 14 +00:00:00

我这样做是正确的吗?

3 个答案:

答案 0 :(得分:3)

你的DateFormat不正确mm是分钟,MM是几个月。

此致

答案 1 :(得分:2)

正如burna所说,你的日期格式不正确。有关格式的完整列表,请参阅:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

如您所见,MM定义了几个月。对于月 - 日 - 年日期,您应该查看格式:"MM-dd-yyyy"希望有所帮助。

答案 2 :(得分:0)

问题不在于调用java.sql.Date构造函数。如果您打印出utilDate,您将看到该值已经错误。

问题是你的SimpleDateFormat字符串 - 它应该是“MM-dd-yyyy”,即M的大写字母。有关所有转换代码,请参阅javadoc