我有rest控制器返回包含java.time.Instant字段的实体类。当我查询端点并返回实体对象(例如,公共ResponseEntity getMyEntity(){...})时,即时字段将以“ 1565897335.543075”而不是yyyy-MM-ddTHH:mi:ss格式返回。
但是,如果我在响应实体中返回“字符串”并返回“ objectMapper.writeValueAsString(myEntity),则即时字段将按预期格式正确返回。对象映射器实例是Spring提供的默认值。
我尝试注册JavaTime和Jdk8模块,但没有帮助。无需添加任何新模块(jsr310等),使用默认对象映射器返回序列化的myEntity对象即可正常工作。
返回实体对象时,如何获取“ yyyy-MM-ddTHH:mm:ss”的Instant格式。关于我在这里缺少什么的任何指示?
工作示例[返回:{“ createTime”:“” 2019-08-15T12:28:55“”}
@GetMapping("/applications/test")
@ResponseBody
public String getApps(){
return this.objectMapper.writeValueAsString(applicationJpaRepository.findByName("appName"));
}
非工作示例[返回:{“ createTime”:1565897335.543075}
@GetMapping("/applications")
public ResponseEntity<Application> getAllApplication(){
return ResponseEntity.ok(applicationJpaRepository.findByName("appName"));
}