目前,多数web开发这都在使用Spring的框架。但是这个框架有个
@ResponseBody 注解返回json时,日期格式默认显示为时间戳。
而我们页面展示的时候一般都是以下格式:
yyyy-MM-dd HH:mm:ss yyyy/MM/dd HH:mm:ss yyyy年MM月dd日 HH:mm:ss
上网查询了很多资料,很多说法都不错。但是基本都是copy别人的,不知道有没有自己试验过。
我自己亲自测试了一种方法,结果可行,现在把其贡献出来。
SpringMVC框架中的JavaBean中对时间格式的做了get和set方法。
在get方法上写上
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8",locale = "zh")
然后在js中查看就可以看到格式已经变了。记得是js中查看,不是在java类里查看。java类里查看依然是long的时间戳,js中查看的数据是经过
@ResponseBody封装后的数据。
注意:导入的@JsonFormat的时候记得导入的包名是这个:import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
不要搞错了,因为在spring的配置文件里,配置的就是这个包来解析json
配置信息可以比对下:
<mvc:annotation-driven />
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json; charset=utf-8</value>
</list>
</property>
</bean>
<!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 -->
</list>
</property>
</bean>