将实体类的日期都改为sql.date
monent插件和vue的formateDate的使用。
<script src="${ctx}/js/vue.js"></script> <script src="${ctx}/js/axios-0.18.0.js"></script> <script src="${ctx}/js/moment.js"></script> <td>{{user.birthday | formateDate}}</td> <script> new Vue({ el:"#frameContent", data:{ userList:[] }, /*vue的过滤器 介绍:作用操作插值表达式{{变量名}} 显示数据的时候使用,用于数据展现的时候进行包装加工 语法:{{变量名 | 过滤器配置的方法名}} vue实例中使用filters定义过滤器方法,实现展现数据包装 * * */ filters:{ formateDate(time){ //time是一个格林尼治毫秒数 //目标将日期转换为“YYYY-MM-dd” /* //js原生做法: let date = new Date(time); //拼接字符串 let dateStr = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDay();*/ // moment插件做法 return moment(new Date(time)).format("YYYY-MM-DD"); } } }); </script>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <td> <%--针对于java.util.Date的国际时间格式可以使用jstl个数标签库进行格式化 语法: <fmt:formatDate value="日期数据" pattern="格式化的模式"></fmt:formatDate> 格式化的模式:yyyy-MM-dd --%> <fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd"></fmt:formatDate> </td>
public class StringToDateConverter implements Converter<String, Date> { @Override public Date convert(String s) { //要求:将传入的String转换为符合要求的Date类型返回 //1.校验传入的字符串 s 变量是否有值 // 语法:StringUtils.isEmpty(字符串) // 含义:判断字符串是否为空,包含null的判断 和 空字符串的判断, 符合其中一个就会返回true if(StringUtils.isEmpty(s)) { //2.如果 s 值无效,返回null return null; } try { //3.如果 s 值有效,进行转换 Date date = new SimpleDateFormat("yyyy-MM-dd").parse(s); return date; } catch (ParseException e) { e.printStackTrace(); throw new RuntimeException(e); } } }
springmvc.xml
<!--1.将工具类对象加入IOC容器--> <bean class="com.itheima.converter.StringToDateConverter" id="stringToDateConverter"></bean> <!--2.将工具类对象加入到springMVC转换工厂中--> <bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="stringToDateConverter"></ref> </set> </property> </bean>