1. 程式人生 > >從資料庫讀出來的日期後面多了個 .0 的解決辦法

從資料庫讀出來的日期後面多了個 .0 的解決辦法

今天小編遇到一個關於日期的小問題,於是就深究了一下,分享給大家

至於從資料庫讀出來的日期後面為什麼多了個 .0,這是因為你資料庫的該欄位設定為 timestamp 型別了,然而如果設定為Date型別的話就不會報這種錯誤了,當然,你非要用 timestamp 型別的話,小編也幫你給解決了,也很簡單。我把測試類給大家看一下吧,有圖有真相

import java.text.SimpleDateFormat;
import java.util.Date;
import org.lee.dao.FactoryDao;
import org.lee.model.User;

public class DateFormat {
	
	public static void main(String[] args) throws Exception {
		User user = FactoryDao.getUserDAO().getUserById("user");            //從資料庫獲取物件
		SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //建立要顯示的日期格式
		//注意了,這裡的   MM 在java中代表月份,而  mm 代表分鐘, HH 代表24小時制的時間, hh 代表12小時制的時間,很嚴格的
		
		Date date = fmt.parse(user.getTime());      //將從資料庫讀出來的 timestamp 型別的時間轉換為java的Date型別
		String s = fmt.format(date);                //將這個時間格式化,轉換為String型別
		System.out.println("user.getTime()        : "+user.getTime());         //列印原本從資料庫讀出來的 timestamp 型別日期
		System.out.println("date.toLocaleString() : "+date.toLocaleString());  //列印使用Date.toLocaleString()方法得到的日期
		System.out.println("fmt.format(date)      : "+s);                      //列印格式化之後的日期,這是最理想的日期格式


		/*Date To String*/
		String str = fmt.format(date);
		
		/*String To Date*/
		Date d = fmt.parse(s);

	}

}


執行結果:


上面的程式碼說的夠清楚了,還不懂的話,小編只能呵呵了