當資料庫欄位是 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的世界真是博大精深啊!!!
以上。
沒有留言:
張貼留言