数据库中存储的日期数据类型为java.sql.Date
而java应用层存储的是java.util.Date
java.sql.Date是java.util.Date的子类,所以从数据库取出的日期数据不用进行转换
java.util.Date
java语言常规应用层的日期类型 (可以通过字符串创建对应的事件对象,但无法直接通过JDBC插入到数据库)
字符串转换为自定义日期(字符串转换为Date类型数据)
String str = "1999-09-09";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");//设置自定义的日期格式为yyyy-mm-dd。
java.util.Date date = sdf.parse(str);//parse()方法转换为util.Date数据
转换后的数据
java.util.Date的数据转换为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date date2 =sdf.parse("1997-8-21");//先将字符串转换为Date数据
String dateStr = sdf.format(date2)
- java.sql.Date(不可以通过字符串创建对应的时间对象,只能通过毫秒值创建对象【1970年至今的毫秒值】)
通过util.Date的getTime()方法拿到指定Date类型数据的毫秒值,转换为sql.Date
Date转换的工具类
public class DateUtils {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 1.
public static java.util.Date strToUtil(String str) {
Date date =null;
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
// 2.util.Date.转换为sql.Date
public static java.sql.Date utilToSql(Date date){
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
return sqlDate;
}
//3.util.Date转换为字符串形式
public static String utilToStr(Date date) {
String dates = sdf.format(date);
return dates;
}
}