SpringMVC对日期类型的转换@ResponseBody返回的DateTime是long类型

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

 

posted @ 2017-10-19 18:17  魔流剑  阅读(3388)  评论(0编辑  收藏  举报