如何以REST API返回的正确格式打印JSON日期?

时间:2015-01-13 11:51:52

标签: mysql json spring-mvc

我编写了一个从数据库中获取数据的REST API。我的表中有一列存储日期。我使用时间戳格式来存储日期。

我的问题是,当我提取数据时,我无法以正确的格式显示日期。我收到了1420655400000而不是2015-01-08 00:00:00

这是我的控制器:

@RequestMapping(value="/getEstimation" , method=RequestMethod.GET)
public   List<Estimation1> getEstimation(ModelAndView model) throws IOException{

    List<Estimation1> estdetail;
    estdetail= estimation.getEstimationbyId(5);

    return estdetail;

}

getEstimationId(double)的实施:

@Override
    public List<Estimation1> getEstimationbyId(double id) {
        // TODO Auto-generated method stub
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);  
     String sql = "SELECT * FROM estimation where est_id=" +id;
     List<Estimation1> estimdetails= jdbcTemplate.query(sql, new RowMapper<Estimation1>()

           {
                @Override
                public Estimation1 mapRow(ResultSet rs, int rowNum) throws SQLException

                {
                    Estimation1 aContact = new Estimation1();
                    aContact.setDate(rs.getTimestamp("est_date"));

                    aContact.setEst_contactperson(rs.getString("est_contact_person"));
                    aContact.setEst_customer(rs.getString("est_customer"));
                    aContact.setEst_revision(rs.getInt("est_revision"));
                    aContact.setEst_prjt(rs.getString("est_project"));
                    aContact.setEst_status(rs.getString("est_status"));

                    return aContact;
                }
            });
    return estimdetails;
}

以下是我在执行后从数据库中获取的数据:

[{"date":1420655400000,"est_prjt":"project1","est_revision":0,"est_customer":null,"est_contactperson":"robert","est_status":null,"est_id":0.0,"ec":null}]**

我应该做哪些更改才能以正确的格式打印日期?

1 个答案:

答案 0 :(得分:2)

您需要提示杰克逊的对象映射器,其中包含您希望对日期进行反序列化的格式。以下应该适合你

 @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
 private Timestamp date;