先来说new SimpleDateFormat("yyyy-MM-dd").parse("2018-10-01");和new SimpleDateFormat("yyyy-MM-dd").format(new Date());的区别
new SimpleDateFormat("yyyy-MM-dd").parse("2018-10-01");是将2018-10-01转化成Mon Oct 01 00:00:00 CST 2018
new SimpleDateFormat("yyyy-MM-dd").format(new Date());是将Date形式的时间转化成yyyy-MM-dd这种格式
现在来说SpringMVC里面的转换器,用时间转换器为例
@RequestMapping("/list1")
public String list1(Date date,Model m){
m.addAttribute("date",date);
return "list11";
}
将2018-10-01转化成Mon Oct 01 00:00:00 CST 2018这种格式
那么就写Date转换类
//输入的是String类型,输出的是Date类型
public class MyDateConverter implements Converter<String, Date> {
@Override
public Date convert(String t) {
try {
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(t);
return date;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
该类实现类型的转换
下来是在配置文件里配置转换器
<!-- 转换器配置 -->
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<!--编写的转换类-->
<bean class="edu.xaled.web.conver.MyDateConverter" />
</set>
</property>
</bean>
再将转换器的id加到自动处理器上
<!-- 自动下载最新版本的映射处理器,处理适配器 (加上转换器的id,这样转换器起作用了) -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
输入网址的格式如下
http://localhost:8080/smvc/haha/xixi/list1.action?date=1212-11-11
date的形式必须为yyyy-MM-dd这种形式,否则就不能执行
以此类推也可以写其他的转换器,我上面写的是时间转化器