關於向Mysql中寫入插入時間只有日期沒有時分秒以及JSP頁面顯示日期多了個.0的問題
咱們通常再將實體類中的日期類型的數據寫入數據庫的時候,須要把java.util.Date轉換爲java.sql.Date,咱們使用常規的方法去轉換,轉換過來的只能夠獲得年月日。若是須要取得時分秒,能夠使用Date類的子類Timestamp。java
java.util.Date是不能直接插入數據庫的,雖然它包含了日期和時分秒。java.sql.Date能夠直接寫入數據庫,可是它只有日期沒有時間,java.sql.Time能夠直接寫入數據庫,可是它只有時間沒有日期。使用java.sql.Timestamp可包含目前到毫秒的時間值。sql
再程序中咱們經常使用的是java.util.Date,因此咱們就要將java.util.Date轉換爲java.sql.Timestamp.數據庫
插入數據時:jsp
Connection conn = null; PreparedStatement psmt = null; ResultSet rs = null; try { conn = DBUtil.getConnection(); psmt = conn.prepareStatement(sql); psmt.setString(1, message.getmTitle()); psmt.setString(2, message.getmContent()); psmt.setTimestamp(3, new Timestamp(message.getmPublishTime().getTime())); psmt.setInt(4, message.geteId()); psmt.execute(); } catch (Exception e) { e.printStackTrace(); }
取出數據時:spa
try { conn = DBUtil.getConnection(); psmt = conn.prepareStatement(sql); rs = psmt.executeQuery(); while(rs.next()){ m=new Message(); m.setmId(rs.getInt("m_id")); m.setmTitle(rs.getString("m_title")); m.setmContent(rs.getString("m_content")); m.setmPublishTime(rs.getTimestamp("m_publishTime")); m.seteId(rs.getInt("e_id")); messages.add(m); } } catch (Exception e) { e.printStackTrace(); }
jsp頁面顯示多個0,使用下面的方法解決:
用jsti的fmt:formatDDate標籤.(注:項目虛引入jstl的jar,頁面須要引入標籤庫)code
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <c:forEach var="me" items="${me}"> <tr> <td width="15%">${me.message.mTitle}</td> <td width="20%">${me.message.mContent}</td> <td width="10%"><span style="color:#ff0000;"> <fmt:formatDate value="${me.message.mPublishTime}" pattern="yyyy-MM-dd HH:mm:ss"/></span></td> <td width="10%">${me.employee.eName}</td> <td width="10%">回覆(..)</td> </tr> </c:forEach>