1. 程式人生 > >java yyyy-MM-dd HH:mm:ss格式的時間儲存到MySQL中時 HH:mm:ss顯示為00:00:00.000000

java yyyy-MM-dd HH:mm:ss格式的時間儲存到MySQL中時 HH:mm:ss顯示為00:00:00.000000

在最近的一次專案中,當我將格式為yyyy-MM-dd HH:mm:ss的日期(在前臺打印出來的格式都是正確的),新增到資料庫中時,結果發現HH:mm:ss部分顯示為00:00:00.000000。

Java的程式碼如下:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dt = sdf.format(new Date());
Date date = sdf.parse(dt);
java.sql.Date sql_dt = new java.sql.Date(date.getTime());
preparedStatement.setDate(1,sql_dt);
最後,發現當使用prepareedStatement.setDate(1,sql_dt);進行datetime型別引數賦值時,它會丟掉日期的時間部門,即HH:mm:ss。

正確的方式應該是:

java.sql.Tiemstamp ts = new java.sql.Timestamp(date.getTime());

preparedStatement.setTimestamp(ts);
這樣插入到MySQL資料庫中yyyy-MM-dd HH:mm:ss格式的時間,才不丟掉HH:mm:ss部分,最終顯示完整的日期時間。