當資料庫欄位是 DATETIME 時,該怎麼辦呢?
在遇到此問題前,筆者都是直接對該欄位下SQL,直接把日期時間以String型態寫入DB,
但是,因為EJB CMP的關係,必須以DATE型態直接寫入,不能再使用String的方式。
果真讓筆者傷腦筋啊~
---
方法一:把String 轉成DATE 
參考網址
 String date = "2003-10-04 18:30:25";
 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 ParsePosition pp = new ParsePosition(0);
 try {
       Date date = df.parse(date);
       System.out.println (date.toString());
 } catch (Exception e) {
       e.printStackTrace();
 } 
 //RESULT: Sat Oct 04 18:30:25 CST 2003
p.s. 但我要的格式並沒有成功,雖然有成功轉成date物件 Q_Q
------------------------------------
方法二:
DateFormat dateFormat =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date() ;        
System.out.println(dateFormat.format(date)); 
//RESULT: 2010-08-10 00:22:42
p.s. 但使用dateFormat.format() 的結果是把日期轉成String,結果還是無法把日期時間寫入資料庫。
------------------------------------
方法三:
java.util.Date ud = java.util.Date ud = java.util.Calendar.getInstance().getTime();
java.sql.Timestamp time = new java.sql.Timestamp(ud.getTime());
System.out.println(time.toString());
//RESULT: 2010-08-10 22:18:37.643
使用TIMESTAMP物件,轉換時間成功,這時,就可以成功寫入物件。
結論,java的世界真是博大精深啊!!!
以上。
 
沒有留言:
張貼留言