util.Date与sql.Date相互转换的方法很简单:通过getTime()方法,getTime()返回Long类型
两者的getTime方法是一样的,应该都是继承自Date类
public long getTime() {
return getTimeImpl();
}
private final long getTimeImpl() {
if (cdate != null && !cdate.isNormalized()) {
normalize();
}
return fastTime;
}
另外,util.Date与sql.Date都可以使用SimpleDateFormat来改变格式,原因是simpleDateFormat.format()方法的参数为Date类型
util.Date转换为sql.Date
java.sql.Date sqldate = new java.sql.Date(new java.util.Date().getTime());
System.out.println(sqldate);
sql.Date转换为util.Date
java.sql.Date sqldate = new java.sql.Date(new java.util.Date().getTime());
System.out.println(sqldate);
java.util.Date utildate = new java.util.Date(sqldate.getTime());
System.out.println(utildate);
util.Date使用SimpleDateFormat(util.Date转换为字符串)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyy-MM-dd hh.mm.ss");
java.util.Date utildate = new java.util.Date();
System.out.println(simpleDateFormat.format(utildate));
sql.Date使用SimpleDateFormat(sql.Date转换为字符串)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyy-MM-dd hh.mm.ss");
java.sql.Date sqldate = new java.sql.Date(new java.util.Date().getTime());
System.out.println(simpleDateFormat.format(sqldate));
字符串转换为util.Date
String s = "2021-01-21 21:58:03";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(s);
应注意:
字符串只能转换为util.Date,而不能转换为sql.Date,因为simpleDateFormat.parse()的返回值类型就只有util.Date
若想将字符串转为sql.Date,可先将字符串转为util.Date再转为sql.Date