字符串日期转换为sql日期格式MM/dd/yyyy?
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,但输出应为2006年12月10日字符串日期转换为sql日期格式MM/dd/yyyy?
如果System.out.println(sql_date);
正在显示的时间值作为2006-12-10
这是因为它是使用默认yyyy-mm-dd
格式,无论是从Java或从操作系统。这并不意味着日期是“错误的”,它只是以不同的方式显示。
永远记住:
日期值没有格式。它们只是对应于特定日期的(数字)值。
日期的[字符串]交涉做有格式。但是,格式不会以任何方式影响值。无论是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();
}
System.out.println(format.format(sql_date));//12/10/2006
java.sql.Date
是一个子类的java.util.Date
。所以我们可以格式为java.sql.Date
与java.util.Date
相同。
谢谢Satya,它的工作原理.. –
欢迎来;)@Codder – Satya
这个代码提供'MM/DDD/yyy'唯一格式。 – Satya
nopes,它给出如上所述的yyyy-MM-ddd格式2006-12-10 –
我认为你需要一个sql_date变量的格式化程序。或者甚至更好地摆脱sql_date。不知道为什么要创建一个java.util.Date实例来创建一个java.sql.Date实例。而且你希望在创建实例之后对其进行格式化,而不是之前。 – lps