java日期类型互转


从 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));

2. java.util.Date <=> java.sql.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));


附录:

java日期类型互转_第1张图片



你可能感兴趣的:(java日期类型互转)