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");
}我希望将字符串日期转换为MM/ddd/yyy格式,并将其转换为sql ms访问日期格式。但是我得到的输出是2006-12-10,但是输出应该是12/10/2006。
发布于 2015-10-15 18:50:56
如果System.out.println(sql_date);以2006-12-10的形式显示日期值,这是因为它使用的是默认的yyyy-mm-dd格式,不管是来自2006-12-10还是操作系统。这并不意味着日期是“错误的”,它只是以一种不同的方式显示。
永远记住:
date values 没有格式。只是与特定日期相对应的(数字)值。
字符串表示日期的 of Date do 有一种格式。但是,该格式不以任何方式影响值。无论是2006-12-25还是12/25/2006,还是December 25, 2006或2006 décembre 25,日期值都是相同的。
因此,您不需要担心对日期参数使用任何特定的格式,只需传递值本身:
try (
Connection conn = DriverManager.getConnection(connStr);
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO EmployeeDetails ([Date]) VALUES (?)")) {
String month = "12"; //
String year = "2006"; // sample data
String day = "10"; //
ps.setDate(1, java.sql.Date.valueOf(year + "-" + month + "-" + day));
ps.executeUpdate();
}发布于 2015-10-15 18:48:24
System.out.println(format.format(sql_date));//12/10/2006java.sql.Date是java.util.Date的一个子类.因此,我们可以将java.sql.Date格式与java.util.Date格式相同。
https://stackoverflow.com/questions/33156058
复制相似问题