从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。
1. String <=> java.util.Date
//String => java.util.Date SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dstr = "2014-9-9 15:13:53"; java.util.Date date = sdf.parse(dstr); //java.util.Date => String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date date = new java.util.Date(); System.out.println(sdf.format(date));
//java.util.Date => java.sql.Date java.util.Date uDate = new java.util.Date(); java.sql.Date sDate = new java.sql.Date(uDate.getTime()); //java.sql.Date => java.util.Date //很少用到这种转换,同上
3. String <=> java.sql.Date
// String => java.sql.Date // 这个可以分成2种情况: // (1)String类型的日期是yyyy-mm-dd格式的,可以直接用valueOf()方法进行转化,注意,非yyyy-mm-dd格式转化将抛出IllegalArgumentException错误! java.sql.Date sDate = java.sql.Date.valueOf("2014-9-9"); // java.sql.Date => String // (2) String类型非yyyy-mm-dd格式的,必须先转换成java.util.Date类型,再转换成java.sql.Date类型 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dstr = "2014-9-9 15:13:53"; java.util.Date uDate = sdf.parse(dstr); java.sql.Date sDate = new java.sql.Date(uDate.getTime()); //java.sql.Date => String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.sql.Date sDate = java.sql.Date.valueOf("2014-9-9"); System.out.println(sdf.format(sDate));
附录: