springmvc 对日期的转换与处理

时间:2023-03-09 19:24:35
springmvc 对日期的转换与处理

一,背景

近期项目上需求还没有确定,难道清闲,对项目中不合理的地方进行一些升级改造。鉴于项目使用的技术框架比较老旧(spring 3.0+) ,一直没有对此做大的升级改造。由于之前项目入参,出参都是使用统一的map进行接收,字段使用String进行接受,导致开发人员工作时,重复代码量大,效率低下。于是做了一些优化处理,比如统一对日期进行处理。这里简单介绍对日期处理问题。

二,对前端传来的日期统一处理

2.1 编写DateConvert类

package com*.common.convert;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter; public class DataConvert implements Converter<String, Date> { private static final Logger LOGGER= LoggerFactory.getLogger(DataConvert.class);
public String datePattern="yyyy-MM-dd HH:mm:ss"; public void setDatePattern(String datePattern) {
this.datePattern = datePattern;
} @Override
public Date convert(String source) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern);
try {
return simpleDateFormat.parse(source);
} catch (ParseException e) {
LOGGER.error("对日期进行格式转换异常!期望的格式:{}",datePattern,e);
} return null;
} }

2.2 配置修改

    <mvc:annotation-driven conversion-service="conversionService" />
<!-- 配置统一日期格式转换器(前端传入-后台接收处理) -->
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.winning.mmap.core.common.convert.DataConvert">
<property name="datePattern" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</set>
</property>
</bean>

三,对返回日期格式统一处理

由于springmvc3.0.X不支持<mvc:annotation-driven/> 子标签配置,所以使用如下配置:

    <!--springmvc3.0.5对返回日期格式进行统一转换配置  -->
<bean id="dateHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="objectMapper">
<bean class="org.codehaus.jackson.map.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</property>
</bean>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="dateHttpMessageConverter"/>
</list>
</property>
</bean>

当然,如果使用更高版本,配置则更为简单。

四,结语

现在流行无配置文件化开发,比如springboot开发,但几年的开发经验告诉我,配置文件使用起来也是很方便,后面会尽量使用注解合配置文件结合,进行开发工作。

希望可以遇见更好的项目,更好的技术,更好的自己。