繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM