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
我这样做是正确的吗?
答案 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。