我的时间是这样的"2017-12-04T15:45:11.635Z"
:
要转换为,Date
我将以下注释放在相应的字段上:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-ddTHH:mm:ssZ")
这就是我收到此错误的原因:
{
"timestamp": 1512388174163,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.client.RestClientException",
"message": "Could not extract response: no suitable HttpMessageConverter found for response type [class ru.something.api.domain.AwesomeObject] and content type [application/json;charset=UTF-8]",
"path": "/consent/test"
}
应该如何为正确的时间反序列化指定格式?
为了将此字符串推送到变量中,您需要使用此模式
String s = "2017-12-04T15:45:11.635Z"; ZonedDateTime zonedDateTime = ZonedDateTime.parse(s, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX"));
又名 ZonedDateTime 标准 zonedDateTime = ZonedDateTime.parse(s, DateTimeFormatter.ISO_ZONED_DATE_TIME);
通常,在特定情况下,要将 ZonedDateTime 类型的变量分配给变量,可能完全没有模式 ZonedDateTime zonedDateTime = ZonedDateTime.parse(s);
请注意这里使用的是 ZonedDateTime,因为在不同的包中有相当多的 Date 类型的变量,并不是事实它被设计为不仅存储日期,还存储时间,甚至与时区。因此,我的建议是首先解析到 ZonedDateTime 变量,并且已经有足够的开箱即用的方法可以在任何地方进行转换,当然,如果需要的话