從資料庫讀出來的日期後面多了個 .0 的解決辦法
阿新 • • 發佈:2019-02-11
今天小編遇到一個關於日期的小問題,於是就深究了一下,分享給大家
至於從資料庫讀出來的日期後面為什麼多了個 .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); } }
執行結果:
上面的程式碼說的夠清楚了,還不懂的話,小編只能呵呵了