如何使用java将当前日期和时间保存到数据库?

我使用以下代码来获取当前日期和时间,但输出不是我所期望的,我不能将其保存到数据库中。

输出>>当前:Tue Mar 05 09:58:26 2013

预期产量>>当前:2013-03-05 9:58:26

.....{ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); try { System.out.println("current: " +parseFormat.parse(dateFormat.format(date))); return parseFormat.parse(dateFormat.format(date)); } catch (ParseException ex) { Logger.getLogger(ConstructionModel.class.getName()).log(Level.SEVERE, null, ex); } return date; } ...... ps.setDate(....) <<< failed 

数据库

  name type mydate Date 

您需要使用sql时间戳来保存到数据库。 将java.util.Date转换为java.sql.Timestamp :

 ps.setTimestamp(new java.sql.Timestamp(myDate.getTime())); 

格式化之前无需解析:

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String frmtdDate = dateFormat.format(date); System.out.println("frmtdDate: " + frmtdDate); 

但是,如果您尝试将日期放入某个DB语句中,则不应以文本forms进行,而应使用其中一个使用java.sql.Datejava.sql.Timestamp的JDBC setter。

format接受Date并返回格式化的Stringparse采用格式化的String并返回Date对象。 当您执行parseFormat.parse(dateFormat.format(date))您将Date转换为String并再次转换为Date 。 打印的值是Date.toString()而不是格式化字符串提供的默认表示forms。

  System.out.println("current: " +dateFormat.format(date));