【问题标题】:util.date to sql.date giving the wrong dateutil.date 到 sql.date 给出错误的日期
【发布时间】:2012-02-12 16:19:48
【问题描述】:
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格式在prepared statement中使用,但是生成的日期是错误的,03-14-2012被转换为2012-01- 14 +00:00:00

我这样做对吗?

【问题讨论】:

标签: java sql


【解决方案1】:

您的 DateFormat 不正确,mm 是分钟,MM 是月。

问候

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-14
        • 2013-08-07
        • 2017-06-19
        • 2019-05-12
        • 1970-01-01
        • 2017-03-25
        • 1970-01-01
        • 2020-01-22
        相关资源
        最近更新 更多