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
答案 0 :(得分:1)
如果System.out.println(sql_date);
将日期值显示为2006-12-10
,那是因为它使用的是默认 yyyy-mm-dd
格式,无论是来自Java还是来自操作系统。它并不意味着日期错误",它只是以不同的方式显示。
永远记住:
日期值没有格式。它们只是与特定日期对应的(数字)值。
[String]日期的表示 格式。但是,格式不会影响值以任何方式。它的2006-12-25
或12/25/2006
或December 25, 2006
或2006 décembre 25
日期值是否仍然相同。
因此,您不必担心将任何特定的格式用于Date参数,只需传递值本身:
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();
}
答案 1 :(得分:0)
System.out.println(format.format(sql_date));//12/10/2006
java.sql.Date
是java.util.Date
的子类。因此,我们可以将java.sql.Date
格式化为java.util.Date
。