從 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));
附錄: