SpringMVC4.x默认的日期格式化使用Long类型,这往往不符合实际的使用情况。
方法一:全局修改
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.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>
注意点,SpringMVC4.x不在使用org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
Jackson包名是:org.codehaus.jackson
jackson-core-asl-1.9.13.jar,
jackson-mapper-asl-1.9.13.jar
改成使用2.x的实现,
Jackson包名是:com.fasterxml.jackson
jackson-core-2.5.4.jar,
jackson-databind-2.5.4.jar,
jackson-annotations-2.5.0.jar
方式二:局部修改
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
/**
* 类名:CustomDateSerialize <br/>
* 功能:自定义返回JSON 数据格中日期格式化处理<br/>
* 详细: <br/>
* 作者: Tliu <br/>
* 日期:2015-9-11 <br/>
*/
public class CustomDateSerialize extends JsonSerializer<Date>{
@Override
public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers)
throws IOException, JsonProcessingException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
gen.writeString(sdf.format(value));
}
}
使用方式:
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateDate() {
return createDate;
}
实际开发时基本都是全局修改加局部修改结合使用,SpringMVC在处理JSON时局部修改会被优先使用。
转载于:https://my.oschina.net/liu13430/blog/504977