[英]util.date to sql.date giving the wrong date
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
我这样做是对的吗?
你的DateFormat不正确mm是分钟,MM是几个月。
问候
正如burna所说,你的日期格式是不正确的。 有关格式的完整列表,请参阅: http : //docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
如您所见,MM定义了几个月。 对于一个月 - 日 - 年的日期,你应该看看格式: "MM-dd-yyyy"
希望有所帮助。
问题不在于调用java.sql.Date构造函数。 如果您打印出utilDate,您将看到该值已经错误。
问题是你的SimpleDateFormat字符串 - 它应该是“MM-dd-yyyy”,即M的大写字母。 有关所有转换代码,请参阅javadoc 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.