目前,多数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>