springMVC json自动将date类型转换为long

Posted 叶落风起叶纷飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC json自动将date类型转换为long相关的知识,希望对你有一定的参考价值。

  今天早上遇到了一个奇怪得问题,直接给后台发送请求返回得页面信息中显示时间是正常得,如:2016-03-17 15:42:11.0,但是通过AJAX获取得信息中显示得时间竟然是时间戳

  我首先检查后台传回来得集合中时间类型是不是就是时间戳,结果打上断点发现集合中显示得时间也是正常得,我按F8跳过之后,查看浏览器传送回来得JSON相应居然是时间戳,我不信,于是反反复复了好几遍,确实是集合显示正常,一响应到前台就成时间戳了,于是我baidu了,给出得方案都是在实体的时间get方法上加上json注解(@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")),但是我不能用啊,因为目前这个产品没有用ROM框架,也就是没有实体这一说啊,郁闷之后于是自己想办法格式化一下得,看看好使不。

private List<Map<String,Object>> formatDate(List<Map<String,Object>> list){
        
        List<Map<String,Object>> l = new ArrayList<Map<String,Object>>();
        for (Map<String, Object> map : list) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            if(map.get("add_time")!=null){
                String add_time = map.get("add_time").toString();
                try {
                    Date date = sdf.parse(add_time);
                    map.put("add_time", sdf.format(date));
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            l.add(map);
        }
        return l;
    }

^_^,格式完之后果然不转换了,我仔细检查之后才发现,原来集合中得时间时分秒之后还有毫秒15:42:11.0,把毫秒给格式化掉JSON就不会将时间自动转换为时间戳了。

到此问题顺利解决!

以上是关于springMVC json自动将date类型转换为long的主要内容,如果未能解决你的问题,请参考以下文章

关于springmvc怎么自动把前台string类型日期字段转换成date类型

SpringMVC表单或Json中日期字符串与JavaBean的Date类型的转换

json中的String类型的日期为啥自动转换成date类型

SpringMVC类型转换数据绑定详解

springMVC使用@InitBinder注解把字符串转化为Date类型

Spring MVC中自定义类型转换器(Date)