我使用以下代码来获取当前日期和时间,但输出不是我所期望的,我不能将其保存到数据库中。
输出>>电流:Tue Mar 05 09:58:26 EST 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
格式化前不需要解析:
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语句中,则不应该以文本的形式进行,而应该使用使用java.sql.Date
或java.sql.Timestamp
的JDBC设置程序之一
您需要使用sql时间戳来保存到数据库。将java.util.Date转换为java.sql.Timestamp:
ps.setTimestamp(new java.sql.Timestamp(myDate.getTime()));
format
接受Date
并返回格式化的String
。parse
接受一个格式化的String
并返回一个Date
对象。当您执行parseFormat.parse(dateFormat.format(date))
时,您将Date
转换为String
并再次转换为Date
。输出的值是Date.toString()
提供的默认表示形式,而不是格式化的字符串。
System.out.println("current: " +dateFormat.format(date));