Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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日期格式MM/dd/yyyy?_Java_Sql_Date_Ms Access_Jdbc - Fatal编程技术网

Java 字符串日期转换为sql日期格式MM/dd/yyyy?

Java 字符串日期转换为sql日期格式MM/dd/yyyy?,java,sql,date,ms-access,jdbc,Java,Sql,Date,Ms Access,Jdbc,我想将字符串日期格式MM/ddd/yyy转换为sql ms access日期格式。但是我得到的输出是2006-12-10,但是输出应该是12/10/2006 public void setEmployeeDetails(String month,String year,String day) throws SQLException, ParseException { String sql="INSERT INTO EmployeeDetails (SiteName,Emplo

我想将字符串日期格式MM/ddd/yyy转换为sql ms access日期格式。但是我得到的输出是2006-12-10,但是输出应该是12/10/2006

public void setEmployeeDetails(String month,String year,String day) throws

SQLException, ParseException
{

        String sql="INSERT INTO EmployeeDetails (SiteName,EmployeeName,EmployeePhoneNumber,Date) VALUES(?,?,?,?)"; 
          pStmt = conn.prepareStatement(sql) ;

             String date=month+"/"+day+"/"+year;
             SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
             java.util.Date parsed = format.parse(date);
             java.sql.Date sql_date = new java.sql.Date(parsed.getTime());
             System.out.println(sql_date);
         }
    public static void main(String args[]) throws SQLException, ClassNotFoundException, ParseException{
        Employee_Details_DAO e=new Employee_Details_DAO();
        e.setEmployeeDetails("12","2006","10");
    }

java.sql.Date
java.util.Date
的一个子类。因此,我们可以将
java.sql.Date
的格式设置为与
java.util.Date
If
System.out.println(sql\u-Date)相同的格式
将日期值显示为
2006-12-10
这是因为它使用默认的
yyyy-mm-dd
格式,无论是从Java还是从操作系统。这并不意味着日期是“错误的”,它只是以不同的方式显示

永远记住:

日期值没有格式。它们只是对应于特定日期的(数字)值

[String]日期的表示形式有一种格式。但是,格式不会以任何方式影响值。无论是
2006-12-25
12/25/2006
2006年12月25日
2006年12月25日
日期值仍然相同

因此,您无需担心对日期参数使用任何特定格式,只需传递值本身:

试试看(
连接conn=DriverManager.getConnection(connStr);
PreparedStatement ps=conn.prepareStatement(
“插入员工详细信息([日期])值(?)){
字符串month=“12”//
字符串year=“2006”;//示例数据
字符串day=“10”//
ps.setDate(1,java.sql.Date.valueOf(年+月+日));
ps.executeUpdate();
}

此代码只提供了
MM/ddd/yyy
格式。不,它提供了如上所述的yyyy-MM-ddd格式2006-12-10我想您需要一个sql\u-date变量的格式化程序。或者最好去掉sql_date。不确定为什么要创建java.util.Date实例来创建java.sql.Date实例。您将希望在创建实例之后而不是之前格式化它。
java.sql.Date
toString()
方法始终以
yyyy-mm-dd
格式输出日期。不确定是什么问题?
 System.out.println(format.format(sql_date));//12/10/2006