etmvc中生成JsonView的时间格式问题处理

前端之家收集整理的这篇文章主要介绍了etmvc中生成JsonView的时间格式问题处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本人在etmvc中使用ActiveRecord来实现ORM,结果在生成JsonView返回时,发现日期时间格式全变成了日期没有时间,这是为什么呢?

代码如下:

  1. public JsonView getLogs(int rows,int page
  2. ) throws Exception {
  3. String cond = "1=1";
  4. List<Object> tmpArgs = new ArrayList<Object>();
  5. Object[] args = tmpArgs.toArray();
  6. long total = Log.count(Log.class,cond,args); //查询数量
  7. List<Log> logs = Log.findAll(Log.class,args,"id",rows,(page-1)*rows); //查询一页资料
  8. //构造JSON用的数据结构并返回JSON视图
  9. Map<String,Object> result = new HashMap<String,Object>();
  10. result.put("total",total);
  11. result.put("rows",logs);
  12. //System.out.println(result.toString());
  13. JsonView view = new JsonView(result);
  14. view.setContentType("text/html;charset=utf-8");
  15. return view;
  16. }

结果返回如下,时间没了,只有日期:

网上找了老半天也没找着说这事的,后来大概猜测了一下,可能是默认情况下JsonView会把时间分别按年,月,日,时,分,秒属性显示,然不是我们想要的完整的时间字符串,这怎么办呢?后来想了一招,自己手动格式化字符串,代码如下:

  1. public JsonView getLogs(int rows,(page-1)*rows); //查询一页资料
  2. List<Map<String,Object>> _list=new ArrayList<Map<String,Object>>();
  3. for(Log log: logs){
  4. Map<String,Object> _map=new HashMap<String,Object>();
  5. _map.put("id",log.getId());
  6. _map.put("userName",log.getUserName());
  7. _map.put("userIP",log.getUserIP());
  8. _map.put("logTime",log.getLogTime().toString());
  9. _list.add(_map);
  10. }
  11. //构造JSON用的数据结构并返回JSON视图
  12. Map<String,_list);
  13. //System.out.println(result.toString());
  14. JsonView view = new JsonView(result);
  15. view.setContentType("text/html;charset=utf-8");
  16. return view;
  17. }

结果返回:

问题暂且搞定,不知道是不是还有其他办法,目前尚未研究!顺带提一下,数据库MysqL,日期时间格式是:datetime,model里用的是java.sql.Timestamp格式。

猜你在找的Json相关文章