項目中,java.sql.Date、java.util.Date和String三者之間要經常進行轉換。下面是我寫的轉換代碼,有不對的還請多多指教。
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 5 /** 6 * java.util.Date 7 * 1、就是在除了SQL語句的情況下面使用;是 java.sql.Date 的父類; 8 * 2、是常用的表示時間的類,我們通常格式化或者得到當前時間都是用它。 9 * 10 * java.sql.Date 11 * 1、是針對SQL語句使用的,它只包含日期而沒有時間部分; 12 * 2、讀寫數據庫的時候用它,因為PreparedStament的setDate()的第2參數和ResultSet的getDate()方法的第2個參數都是java.sql.Date。 13 * 14 */ 15 public class TestUtilAndSqlDate { 16 public static void main(String[] args) { 17 //java.util.date java.sql.date 之間的轉換 18 Date date = new Date(); 19 System.out.println("java.util.date***"+date.toString()); 20 java.sql.Date sqlDate = new java.sql.Date(date.getTime()); 21 System.out.println("java.sql.date***"+sqlDate.toString()); 22 23 Date date2 = new Date(sqlDate.getTime()); 24 System.out.println("java.util.date***"+date2); 25 26 //String java.util.date 之間的轉換 27 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 28 String formatUtilDate = sdf1.format(date); 29 System.out.println("formatUtilDate***"+formatUtilDate); 30 31 try { 32 Date parseUtilDate = sdf1.parse(formatUtilDate); 33 System.out.println("parseUtilDate***"+parseUtilDate); 34 } catch (ParseException e) { 35 e.printStackTrace(); 36 } 37 38 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd"); 39 String formatUtilDate2 = sdf2.format(date); 40 System.out.println("formatUtilDate2***"+formatUtilDate2); 41 42 try { 43 Date parseUtilDate2 = sdf2.parse(formatUtilDate2); 44 System.out.println("parseUtilDate2***"+parseUtilDate2); 45 } catch (ParseException e) { 46 e.printStackTrace(); 47 } 48 49 50 //String java.sql.Date 之間的轉換 51 //String 轉 sql.date 可以用valueOf方法;sql.date轉String需要用到 util.Date的getTime()方法 52 String formatSqlDate = "2013-05-09"; 53 java.sql.Date valueOf = java.sql.Date.valueOf(formatSqlDate); 54 System.out.println("valueOf***"+valueOf); 55 56 // String formatSqlDate2 = "20130509";//String 格式錯誤 應為 yyyy-MM-dd 57 // java.sql.Date valueOf2 = java.sql.Date.valueOf(formatSqlDate2); 58 // System.out.println("valueOf2***"+valueOf2); 59 60 java.sql.Date newSqlDate = new java.sql.Date(new Date().getTime()); 61 System.out.println("sqlDateToString***"+newSqlDate.toString()); 62 63 } 64 }