今天早上遇到了一個奇怪得問題,直接給後台發送請求返回得頁面信息中顯示時間是正常得,如: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就不會將時間自動轉換為時間戳了。
到此問題順利解決!