Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的日期未正确转换为sql_Java_Sql - Fatal编程技术网

Java中的日期未正确转换为sql

Java中的日期未正确转换为sql,java,sql,Java,Sql,我的日期没有正确格式化为sql,你知道为什么吗 public void vDate(String s) { try{ SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); java.util.Date utilDate = (Date)dateFormat.parse(s); date = new java.sql.Date(uti

我的日期没有正确格式化为sql,你知道为什么吗

public void vDate(String s) {
        try{
            SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
            java.util.Date utilDate = (Date)dateFormat.parse(s);
            date = new java.sql.Date(utilDate.getTime());
        }catch(Exception e){
            edate = "Please enter a valid date!";
            valid = false;
        }
    }
日期的类型为java.sql.date。
将2012年3月20日转换为2013年8月03日

您使用的是MM dd yyyy,但在2012年3月20日传递。20不是有效月份。如果你想先度过这一天,你应该改为我们dd MM yyyy。或者,添加当月的健全性检查。。。如果输入值为=13,则拒绝它。

这很简单。您的日期格式为
MM dd yyyy
,日期为
20-03-2012
。一年中只有12个月,而不是20个月。

20被视为一个月,因为您提供了SDF。将年份转换为2013年(12+8=20)。请检查/更改它。

20-03-2012
不在
“MM dd yyyy”
中,因此它试图将其解释为20个月。没有这样一个月,所以你会被移动1年零8个月,因此你会得到
2013-08-03
(3是日部分)。

奇怪的是,下面没有提到:如果输入是20-03-2012,请使用
dd MM yyyy
作为SimpleDataFormat()格式字符串。