Spring 2.1.5中的java.time.Instant格式

时间:2019-08-22 00:09:14

标签: spring-boot jackson objectmapper

我有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"));

}

0 个答案:

没有答案