方案1:改为sql.date
将实体类的日期都改为sql.date
方案2:vue的过滤器
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>
方案3:jstl的fmt
<%@ 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>
方案4:Springmvc的转换工厂converter
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>