ssm日期格式转换
1 需求
前端传入字符串类型日期转化成java中的Date类型,存入数据库中;将数据库中的日期类型通过jstl标签在前端页面转换成字符串类型。
2 步骤
2.1 创建一个日期转换类实现Converter接口,将String类型的日期转换成java中的Date类型,如果数据库中的字段设置为date,则SimpleDateFormat中设置格式为(yyyy-MM-dd),如果为datetime,则SimpleDateFormat中设置格式为(yyyy-MM-dd HH:mm:ss)。
public class CustomDateConverter implements Converter<String, Date>{ @Override public Date convert(String source) { // 将日期串转换成日期格式(格式是yyyy-MM-dd) SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); try { //返回上述格式的Date类型对象 return simpleDateFormat.parse(source); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
2.2 将自定义的转换类在springmvc中配置,并且在mvc:annotation-driven添加conversion-service属性,值为conversionService。
<!-- 自定义参数绑定 --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <!-- 转换器 --> <property name="converters"> <!-- 日期类型的转换 --> <bean class="cn.haohan.ssm.converter.CustomDateConverter"></bean> </property> </bean> <mvc:annotation-driven conversion-service="conversionService"> </mvc:annotation-driven>
2.3 Jsp页面顶部添加fmt标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
2.4 Jsp页面中显示日期的位置,将从数据库读取到的日期类型的数据转换成字符串类型的数据
<td><input type="text" name="createtime" value="<fmt:formatDate value="${items.createtime }" pattern="yyyy-MM-dd HH:mm:ss"/>"/></td>
或者:
<td><fmt:formatDate value="${custom.birthday }" pattern="yyyy-MM-dd"/></td>