从JSP页面获得时间之后,在Controller中获得是String;怎么转换成Date
解决方式一:
1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = “yyyy-MM-dd”) ,即可将String转换为Date类型,如下
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
解决方式一:
可以在系统中加入一个全局类型转换器
1.在spring-mvc.xml中添加
<!-- 配置日期转换器 -->
<bean id="formattingConversion" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<!-- 配置自己的转换器 -->
<bean class="com.itcast.utils.StringToDateConverter"></bean>
</list>
</property>
</bean>
<!-- 引用上文的转换器 -->
<mvc:annotation-driven conversion-service="formattingConversion"></mvc:annotation-driven>
2.编写日期转换类:StringToDateConverter
public class StringToDateConverter implements Converter<String, Date> {
public Date convert(String value) { //参数就是传入的字符串日期
// 1999年6月6日 创建相对应的日期格式化对象
SimpleDateFormat simpleDateFormat = null;
/*String str = value.substring(4, 5);
switch (str) {
case "年":
simpleDateFormat = new SimpleDateFormat("yyyy年mm月dd日");
break;
case ".":
simpleDateFormat = new SimpleDateFormat("yyyy.mm.dd");
break;
case "-":
simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
break;
default:
simpleDateFormat = new SimpleDateFormat("yyyy/mm/dd");
break;
}*/
if (value.contains("年")) {
simpleDateFormat = new SimpleDateFormat("yyyy年mm月dd日 HH时mm分");
}
else if (value.contains(".")) {
simpleDateFormat = new SimpleDateFormat("yyyy.mm.dd HH.mm");
}
else if (value.contains("-")) {
simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm");
}
else if (value.contains("/")) {
simpleDateFormat = new SimpleDateFormat("yyyy/mm/dd HH/mm");
}
//解析
try {
//把字符串解析成一个日期对象
Date parse = simpleDateFormat.parse(value);
//返回结果
return parse;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}