关于向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>