我编写了一个从数据库中获取数据的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}]**
我应该做哪些更改才能以正确的格式打印日期?
答案 0 :(得分:2)
您需要提示杰克逊的对象映射器,其中包含您希望对日期进行反序列化的格式。以下应该适合你
@JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private Timestamp date;